https://bugs.winehq.org/show_bug.cgi?id=57503
Bug ID: 57503 Summary: World in conflict has a frozen screen - updating only when alt-tabbing out and in Product: Wine Version: 9.18 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: tobias.boesch@googlemail.com Regression SHA1: 21a0c158b94bfc65d4baa95095307a1db396db0c Distribution: ArchLinux
World in Conflict strategy game (gog-Version) starts and plays sound.
The screen shows the first rendered frame without updating it. At start a black screen because the game starts with a black frame. After that the screen is not updated anymore. Sound continues to play during all that. I assume the game just runs fine.
When switching to another running app (ALT+TAB) from the game and back to the game updates the screen and shows the image that matches the sound currently played. (in GNOME pressing the Super- (aka Windows-) button to show the GNOME overview and then press it again to return to game also updates the screen to the current frame)
Interestingly, when the issue happens and I close the game the last drawn frame stays on screen, even when the process is closed. It stays for about 5 to 10 seconds and then the app in background is shown.
This happens on X11 and Wayland. I use arch Linux.
All this happens in wine 9.18 and doesn't happen in wine 9.17.
I found the first bad commit where this happens through building wine and testing commits by doing git-bisect myself (without using git for that).
The following is the outcome of my tests:
- 21a0c158b94bfc65d4baa95095307a1db396db0c (**first bad commit**) - Message: winex11: Implement vulkan DPI scaling and child window rendering. - Bad - 5ed9e5e7c58049884b82c10d22b05448a10c0b44 (**direct parent of first bad commit**) - Message: winex11: Move offscreen client window helpers to init.c. - Good
Can this be
https://bugs.winehq.org/show_bug.cgi?id=57503
tobias.boesch@googlemail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |tobias.boesch@googlemail.co | |m
https://bugs.winehq.org/show_bug.cgi?id=57503
--- Comment #1 from tobias.boesch@googlemail.com --- (In reply to tobias.boesch from comment #0)
Can this be
.. reverted (the failing commit) and then done differently later on?
https://bugs.winehq.org/show_bug.cgi?id=57503
tobias.boesch@googlemail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC|tobias.boesch@googlemail.co | |m |
https://bugs.winehq.org/show_bug.cgi?id=57503
tobias.boesch@googlemail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |winex11.drv Keywords| |regression
https://bugs.winehq.org/show_bug.cgi?id=57503
Rémi Bernon rbernon@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |rbernon@codeweavers.com
--- Comment #2 from Rémi Bernon rbernon@codeweavers.com --- Does this require any specific patches? I'm unable to run the game either before or after this change. It opens a window and quickly crashes after it.
https://bugs.winehq.org/show_bug.cgi?id=57503
--- Comment #3 from tobias.boesch@googlemail.com --- I think it needs DXVK. Here's why I believe that:
I just came back to this because I read the bug reporting guidelines again and realised I didn't check to reproduce the bug with a fresh wineprefix and without an additional wine wrapper. Until now this bug report describes the bug when WIC is ran through Lutris. My bad - sorry for this.
With a fresh prefix the game shows a stable black screen and runs in background (Sound plays and intro can be skipped through mouse click) before and after this change. As said it works with Lutris. When I disable DXVK support in Lutris the game behaves as if it was launched from pure wine command line (Black screen sound plays, intro can be skipped). So I guess it is the DXVK support that makes it run.
Today I don't have the time to find out how to enable DXVK in pure wine. I will do that and come back here. If it starts with DXVK, then I will double check the bug again in pure wine and a fresh wine prefix.
I checked my WIC version and I use GOG Version v1.0.1.0. I have patched it with the large address aware patch (https://www.pcgamingwiki.com/wiki/World_in_Conflict#.22Out_of_memory.22_cras...), but it also works the unpatched executable currently. So there are no patches that I know of.
https://bugs.winehq.org/show_bug.cgi?id=57503
--- Comment #4 from tobias.boesch@googlemail.com --- It is as I guessed.
Installing DXVK through winetricks makes the game run - with pure wine and a fresh prefix.
This regression bug here stays exactly as described with pure wine and a fresh prefix.
The only thing I don't understand is why the game doesn't start on your side. I could try to clean install the game, too if you like.
https://bugs.winehq.org/show_bug.cgi?id=57503
--- Comment #5 from Rémi Bernon rbernon@codeweavers.com --- Hmm... sadly, even with LAA patched binary it doesn't start. It looks like a memory corruption after some internal allocator returns a bogus pointer and the game crashes trying to memset it. Possibly an invalid pointer was freed before, but I couldn't find where it comes from.
https://bugs.winehq.org/show_bug.cgi?id=57503
--- Comment #6 from Rémi Bernon rbernon@codeweavers.com --- Looks like I just have too many CPUs and the game overflows some of its assumptions. Faking a lower number fixes the memory corruption... good to know I guess. I can look into the display failure now.
https://bugs.winehq.org/show_bug.cgi?id=57503
--- Comment #7 from Rémi Bernon rbernon@codeweavers.com --- The game window has some invisible child windows, and it triggers the offscreen window rendering, which somehow is broken in this case (not completely surprising, offscreen windows were actually known to be bogus, although it worked in other cases).
With https://gitlab.winehq.org/wine/wine/-/merge_requests/6998 things should get back to normal and the intro video plays fine for me.
https://bugs.winehq.org/show_bug.cgi?id=57503
William Horvath wine@horvath.blog changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |wine@horvath.blog
--- Comment #8 from William Horvath wine@horvath.blog --- (In reply to Rémi Bernon from comment #7)
With https://gitlab.winehq.org/wine/wine/-/merge_requests/6998 things should get back to normal and the intro video plays fine for me.
I tried this commit with osu! stable, as I suspected that it would fix a similar issue where offscreen rendering was used when it wasn't necessary. It does fix that, and now correctly renders onscreen most of the time, except there's a regression in one scenario: entering the map editor in the order "main menu->edit->click map" causes the toolbar at the top of the screen to remain black, as onscreen rendering remains enabled.
However, strangely enough, entering the map editor in the order "main menu->play->right click on a map->edit" correctly re-enables offscreen rendering and the toolbar at the top is visible again. Then, exiting the editor (no more toolbar), onscreen rendering is correctly re-enabled, so this flow is completely fixed with the patchset.
To clarify: the MR you linked causes a regression with osu!, where the toolbar at the top of the beatmap editor remains black (because offscreen rendering/clipping doesn't get enabled) if you enter the editor in a certain way.
https://bugs.winehq.org/show_bug.cgi?id=57503
--- Comment #9 from tobias.boesch@googlemail.com ---
With https://gitlab.winehq.org/wine/wine/-/merge_requests/6998 things should get back to normal and the intro video plays fine for me.
Intro video plays fine for me, too with this patch and also the game works as before. Thanks for your help.
https://bugs.winehq.org/show_bug.cgi?id=57503
--- Comment #10 from Rémi Bernon rbernon@codeweavers.com --- (In reply to William Horvath from comment #8)
(In reply to Rémi Bernon from comment #7)
With https://gitlab.winehq.org/wine/wine/-/merge_requests/6998 things should get back to normal and the intro video plays fine for me.
I tried this commit with osu! stable, as I suspected that it would fix a similar issue where offscreen rendering was used when it wasn't necessary. It does fix that, and now correctly renders onscreen most of the time, except there's a regression in one scenario: entering the map editor in the order "main menu->edit->click map" causes the toolbar at the top of the screen to remain black, as onscreen rendering remains enabled.
However, strangely enough, entering the map editor in the order "main menu->play->right click on a map->edit" correctly re-enables offscreen rendering and the toolbar at the top is visible again. Then, exiting the editor (no more toolbar), onscreen rendering is correctly re-enabled, so this flow is completely fixed with the patchset.
To clarify: the MR you linked causes a regression with osu!, where the toolbar at the top of the beatmap editor remains black (because offscreen rendering/clipping doesn't get enabled) if you enter the editor in a certain way.
Thank you, I've updated the MR with a fix that should address this as well.
https://bugs.winehq.org/show_bug.cgi?id=57503
--- Comment #11 from William Horvath wine@horvath.blog --- (In reply to Rémi Bernon from comment #10)
Thank you, I've updated the MR with a fix that should address this as well.
Works perfectly now, thanks. A bonus is that the game will run 100%~150% faster on x11 when this is upstreamed :)
https://bugs.winehq.org/show_bug.cgi?id=57503
Rémi Bernon rbernon@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED Fixed by SHA1| |786d9d1685ac220081b10cc779d | |4d331ddd2fc52
--- Comment #12 from Rémi Bernon rbernon@codeweavers.com --- Should be fixed after 786d9d1685ac220081b10cc779d4d331ddd2fc52
https://bugs.winehq.org/show_bug.cgi?id=57503
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #13 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 10.0-rc2.