https://bugs.winehq.org/show_bug.cgi?id=50717
Bug ID: 50717 Summary: Wine places 1x1 pixel window on top of fullscreen window, blocking direct scanout on Wayland Product: Wine-staging Version: 6.2 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: tempel.julian@gmail.com CC: leslie_alistair@hotmail.com, z.figura12@gmail.com Distribution: ---
KWin developer Xaver Hugl found this while investigating the cause of direct scanout getting blocked with Wine fullscreen windows on Wayland: "Wine puts a 1x1 pixel big override-redirect window on top of the fullscreen window that stops direct scanout. I'll add a workaround for now but at first glance looks like a Wine bug to me." https://invent.kde.org/plasma/kwin/-/merge_requests/718#note_191539
"I verified that it isn't caused by Xwayland / happens on a normal X session as well" https://invent.kde.org/plasma/kwin/-/merge_requests/728#note_191637 (this MR also contains the workaround, and indeed it makes direct scanout work with Wine)
As a result, performance of fullscreen 3D Wine applications on Kwin Wayland git-master is negatively affected, as unnecessary compositing affects frame presentation and causes lots of dropped frames under high GPU load. It is well possible that this also negatively affects Gnome and Sway Wayland, but also Gnome unredirecting on Xorg.
-staging and Proton are affected, might also apply to regular wine. It doesn't matter if WineD3D or DXVK is used (as this probably is very specific to Wine's window management and not the 3D API).
It looks like if the proper fix was if Wine wouldn't spawn the 1x1 pixel window on top anymore.