[Bug 59577] New: winewayland: Display freezes when application fake-minimizes a fullscreen window
http://bugs.winehq.org/show_bug.cgi?id=59577 Bug ID: 59577 Summary: winewayland: Display freezes when application fake-minimizes a fullscreen window Product: Wine Version: 11.5 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: winewayland Assignee: wine-bugs@list.winehq.org Reporter: cwooperm@gmail.com Distribution: --- Created attachment 80635 --> http://bugs.winehq.org/attachment.cgi?id=80635 Test program that reproduces the freeze by mimicking CryEngine's fake minimize pattern When a fullscreen window sets WS_MINIMIZE and moves to (-32000,-32000) (the Win32 minimize sentinel position), the Wayland driver freezes the display. Audio and input continue working but nothing renders. This works correctly on Windows (seamless restore), X11, and XWayland (user clicks taskbar to restore). Two things go wrong: 1. The window ends up with a 0x0 client area, and the driver sets the viewport to 1x1, which causes the compositor to stop sending frame callbacks (stalling Vulkan present). 2. The driver sends xdg_toplevel_unset_fullscreen during the minimize transition, and the compositor responds with a 0x0 configure. The surface is never restored. Steps to reproduce with the attached test program: 1. Build: `x86_64-w64-mingw32-gcc -o fake_minimize_test.exe fake_minimize_test.c -lgdi32 -mwindows` 2. Run: `DISPLAY= WAYLAND_DISPLAY=$WAYLAND_DISPLAY wine fake_minimize_test.exe` 3. Red fullscreen window appears with a ticking frame counter 4. After 3 seconds, the window fake-minimizes (sets WS_MINIMIZE, moves to -32000,-32000) 5. The display freezes. The frame counter stops updating. 6. ESC still quits (the app is running, only the display is stuck) Expected: Window should minimize and restore when clicked, matching XWayland behavior. On Windows and native X11, the restore is seamless; on XWayland the user must click the taskbar (Wayland protocol limitation). The Wayland driver should handle this at least as well as XWayland. Tested on Wine 11.5, Fedora 44, GNOME/Mutter 50.0, Mesa 26.0.3, AMD RX 9070 XT. Verified working on Windows 11 and XWayland. Real-world affected game: Hunt: Showdown 1896 (CryEngine, AppID 594650). Multiple users affected: https://github.com/GloriousEggroll/proton-ge-custom/issues/484 -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59577 --- Comment #1 from Cooper Morgan <cwooperm@gmail.com> --- I have a tested patch on wine 11.5. Once (or if) my account is verified, I can submit a MR. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59577 --- Comment #2 from Cooper Morgan <cwooperm@gmail.com> --- Correction on root cause: Further testing showed that the 1x1 viewport (point 1) does not cause the freeze on its own. The actual cause is solely point 2: the driver sends xdg_toplevel_unset_fullscreen when the window sets WS_MINIMIZE, and the compositor responds with a 0x0 configure that the driver never recovers from. -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
http://bugs.winehq.org/show_bug.cgi?id=59577 Cooper Morgan <cwooperm@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |cwooperm@gmail.com -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.
participants (1)
-
WineHQ Bugzilla