Redraws lagging behing in OpenGL applications

Questions about Wine on Linux
Post Reply
Remdul
Level 1
Level 1
Posts: 9
Joined: Thu Nov 08, 2018 11:15 am

Redraws lagging behing in OpenGL applications

Post by Remdul » Tue Oct 12, 2021 11:35 am

One problem I keep having between different Wine versions that I've tried in the past, is that some OpenGL content is not being shown in their windows at the right time. It usually lags one (mouse) input event behind, requiring one extra click to manually trigger a redraw. This is very annoying and tedious in graphics/drawing/painting applications. Essentially it happens in every OpenGL application that doesn't continually redraw (i.e. games) where it would go unnoticed. Linux native applications that I've developed don't have the same problem, so it's not an OS/driver/hardware issue.

I've tried adding workarounds by natively forcing redraws in these applications (which partially works using an ugly MaxScript in 3dsmax 2009, but not in my own developed OpenGL applications).
I do know the applications draw their OpenGL content just fine, Wine just doesn't update the displayed widget/window with the latest front buffer contents in time, it seems.
I've also tried combinations of V-sync and "Allow Flipping" in NV X Server Settings, as well as similar settings in the affected applications, but they have no influence on this problem.

I was hoping I've overlooked a winetricks setting somewhere that helps alleviate this problem? I've tried just about any graphics-related Wine setting (i.e. double/tripple buffering etc), but no improvements, nor could I find anyone reporting a similar problem. If you have any pointers, hints, or just ideas with what keywords to search for, that would helpful also.

Linux Mint 19 Cinnamon
wine-4.0.3 (I've also tried older and some newer versions, but yet latest stable release)
GeForce GTX 1060 (NV driver: 390.144)

Remdul
Level 1
Level 1
Posts: 9
Joined: Thu Nov 08, 2018 11:15 am

Re: Redraws lagging behing in OpenGL applications

Post by Remdul » Mon Jun 27, 2022 3:01 pm

This still happens with Wine-staging.

This bug makes all non-realtime rendered OpenGL applications appear broken on Wine, because they do not show the most recent state of the framebuffer.

Remdul
Level 1
Level 1
Posts: 9
Joined: Thu Nov 08, 2018 11:15 am

Re: Redraws lagging behing in OpenGL applications

Post by Remdul » Mon Jun 27, 2022 3:51 pm

By the way, a workaround I found was to always redraw the viewports on mouse motion (since mouse clicks won't do) in my applications. But this is bad for performance, and does not match Windows behavior. Mouse motion events seem to not lag 1 swapbuffers behind unlike click events.

Post Reply