http://bugs.winehq.org/show_bug.cgi?id=58423
Bug ID: 58423 Summary: Flickering in games using dxvk/vkd3d-proton on sway Product: Wine Version: 10.11 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: major Priority: P2 Component: winewayland Assignee: wine-bugs@winehq.org Reporter: llyyr@yukari.in Distribution: ---
Bisected to https://gitlab.winehq.org/wine/wine/-/commit/de0fc7fd95074cfdeb032d36246c562...
Games using Vulkan flicker when the compositor supports explicit sync and it is active after the commit mentioned above.
Disabling explicit sync in sway with `export WLR_RENDER_NO_EXPLICIT_SYNC=1` makes the game window not flicker even with the bad commit.
http://bugs.winehq.org/show_bug.cgi?id=58423
--- Comment #1 from llyyr@yukari.in --- Not calling `set_client_surface` from `wayland_vulkan_surface_presented` fixes the issue with no obvious regressions
http://bugs.winehq.org/show_bug.cgi?id=58423
Ken Sharp imwellcushtymelike@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |rbernon@codeweavers.com Keywords| |regression Regression SHA1| |de0fc7fd95074cfdeb032d36246 | |c56247d2bd82b Severity|major |normal
--- Comment #2 from Ken Sharp imwellcushtymelike@gmail.com --- Neither DXVK nor vkd3d-proton is supported here. Is there an issue with vanilla Wine?
CC: Rémi (commit author)
http://bugs.winehq.org/show_bug.cgi?id=58423
--- Comment #3 from llyyr@yukari.in --- (In reply to Ken Sharp from comment #2)
Neither DXVK nor vkd3d-proton is supported here. Is there an issue with vanilla Wine?
CC: Rémi (commit author)
Yes, it is. The problem is on the end where Wine interacts with the Wayland compositor, not where Wine interacts with the Win32 application. It doesn't have to be dxvk or vkd3d-proton, it just needs to use vulkan. I can't test opengl because I don't have a proper test client, but I'd expect that is affected too.
I think the flickering is a sway/wlroots bug, but what wine is doing here is not sane at all. It's destroying and recreating subsurfaces on every present, even on compositors that handle it without flickers, doing so results in degraded performance.
http://bugs.winehq.org/show_bug.cgi?id=58423
--- Comment #4 from Rémi Bernon rbernon@codeweavers.com --- Created attachment 78868 --> http://bugs.winehq.org/attachment.cgi?id=78868 Tentative fix
Thanks for the report, does this help?
http://bugs.winehq.org/show_bug.cgi?id=58423
--- Comment #5 from llyyr@yukari.in --- That patch results in a blackscreen, with absolutely no updates in WAYLAND_DEBUG=1 logging
http://bugs.winehq.org/show_bug.cgi?id=58423
Rémi Bernon rbernon@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #78868|0 |1 is obsolete| |
--- Comment #6 from Rémi Bernon rbernon@codeweavers.com --- Created attachment 78871 --> http://bugs.winehq.org/attachment.cgi?id=78871 Tentative fix
Sorry, this might be better?
http://bugs.winehq.org/show_bug.cgi?id=58423
--- Comment #7 from llyyr@yukari.in --- Yep, that fixes the issue. Thanks