https://bugs.winehq.org/show_bug.cgi?id=54704
Bug ID: 54704 Summary: Black screen with Dungeon Keeper 2 and Wine v8.4 Product: Wine Version: 8.4 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: reserv0@yahoo.com Distribution: ---
Created attachment 74213 --> https://bugs.winehq.org/attachment.cgi?id=74213 DK2 log (with broken Wine 8.4 and working Wine 8.3)
I just compiled and tried Wine v8.4, and with it, I get a black screen after the intro screen, at the menu stage of Dungeon Keeper 2.
This game is working just fine with (almost) all Wine versions between 6.something (I don't remember exactly which) and 8.3 (I reverted to the latter for now).
There is alas no clue in the messages I get when starting DK2 from a terminal (I get the exact same messages as with v8.3; log attached).
Note that I am using MATE (v1.14.1, GTK2) as the desktop environment, without any compositor, and in X11 mode (no Wayland installed on my system and Wine 8.4 compiled --without-wayland) with a NVIDIA GPU (RTX 3070) and the latest NVIDIA proprietary drivers.
https://bugs.winehq.org/show_bug.cgi?id=54704
--- Comment #1 from reserv0@yahoo.com --- Wine 8.5 is also plagued by this bug.
https://bugs.winehq.org/show_bug.cgi?id=54704
reserv0@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|8.4 |8.7
--- Comment #2 from reserv0@yahoo.com --- Bug still present in Wine v8.7.
Could someone at the very least acknowledge this bug/regression, pretty please?
https://bugs.winehq.org/show_bug.cgi?id=54704
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression
--- Comment #3 from Austin English austinenglish@gmail.com --- Please run a regression test: https://wiki.winehq.org/Regression_Testing
https://bugs.winehq.org/show_bug.cgi?id=54704
--- Comment #4 from reserv0@yahoo.com --- @Austin English
I'm an *occasional* Wine *user*, not a Wine developer, and I cannot afford spending my rare and sparse free time bisecting from Wine's git to find the culprit commit.
I gave you the last working (released) version: v8.3 I gave you the first broken (released) version: v8.4
The breakage that is causing this regression happened in between. You are more competent and familiar with Wine sources than I would ever be to make an educated guess about what could have went wrong by looking at the list of commits...
I'm just reporting a bug. Do not expect me to fix it for you.
https://bugs.winehq.org/show_bug.cgi?id=54704
--- Comment #5 from Gijs Vermeulen gijsvrm@gmail.com ---
I cannot afford spending my rare and sparse free time bisecting from Wine's git to find the culprit commit.
The same can be said of the rare and sparse free time of the volunteers working on Wine.
I'm just reporting a bug. Do not expect me to fix it for you.
No need for this hostility. Asking a user to run a regression test for a bug with no download available is a more than reasonable request.
Without a free and legal download, it is impossible for someone to bisect this regression, hence the original request.
https://bugs.winehq.org/show_bug.cgi?id=54704
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |o.dierick@piezo-forte.be
--- Comment #6 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Hello,
(In reply to reserv0 from comment #4)
I'm an *occasional* Wine *user*, not a Wine developer, and I cannot afford spending my rare and sparse free time bisecting from Wine's git to find the culprit commit.
It's fine if you can't do the regression test. We usually ask the bug reporter, but the request is open to anyone that can reproduce the issue.
However, you can't expect someone else to do the regression test if they have no means to reproduce the issue, so:
There is a demo at the Internet archive: https://archive.org/details/DungeonKeeper2Demo
Can you install the demo in the same wineprefix along the full game and confirm that it is affected by the regression?
Regards.
https://bugs.winehq.org/show_bug.cgi?id=54704
--- Comment #7 from reserv0@yahoo.com --- @Olivier F. R. Dierick
I tried the DK2 demo you suggested but, once installed (yes, in the same Wine prefix), it just crashes with a segfault (with both Wine v8.3 and v8.7)... :-/
The DK2 version I am using is COG's one; the only "trick" to make it work is to have HKEY_CURRENT_USER\Software\Wine\Direct3D\csmt set to 0.
https://bugs.winehq.org/show_bug.cgi?id=54704
--- Comment #8 from reserv0@yahoo.com --- Created attachment 74433 --> https://bugs.winehq.org/attachment.cgi?id=74433 Revert for the OpenGL driver changes that broke DK2
I found the bug...
I used https://dl.winehq.org/wine/source/8.x/wine-8.4.diff.xz : easier for me to browse a (relatively) modest diff than looking at several dozens of commits, and waaaaaay faster than bisecting, with all the manual compilations and installations/tests it involves...
I first suspected some bug introduced with Wayland support, but the changes for this looked rather innocuous for the rest (X11)... And I did use --without-wayland for my build anyway.
Then I noticed changes in dlls/winex11.drv/opengl.c and they looked highly suspicious. I reverted them in Wine 8.7 (patch attached) and bingo!
With the partial revert applied, Wine v8.7 can run again DK2.
https://bugs.winehq.org/show_bug.cgi?id=54704
reserv0@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |opengl
https://bugs.winehq.org/show_bug.cgi?id=54704
joaopa jeremielapuree@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree@yahoo.fr
--- Comment #9 from joaopa jeremielapuree@yahoo.fr --- The offending commit is 46c8a637525d0f1cf67830295fb460c819b800b6
winex11: Separately store the internal pixel format set by WGL_WINE_pixel_format_passthrough. Author Zebediah Figurazfigura@codeweavers.com Author date 20/01/2023 12:23
winex11: Separately store the internal pixel format set by WGL_WINE_pixel_format_passthrough.
https://bugs.winehq.org/show_bug.cgi?id=54704
--- Comment #10 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Hello,
(In reply to reserv0 from comment #7)
I tried the DK2 demo you suggested but, once installed (yes, in the same Wine prefix), it just crashes with a segfault (with both Wine v8.3 and v8.7)... :-/
This is probably bug 13994.
(In reply to reserv0 from comment #8)
Created attachment 74433 [details] Revert for the OpenGL driver changes that broke DK2
I found the bug...
(...)
With the partial revert applied, Wine v8.7 can run again DK2.
Well done finding the code changes.
Your patch reverts two commits:
--- commit [1] --- author Zebediah Figura zfigura@codeweavers.com Fri, 20 Jan 2023 20:03:48 +0000 (14:03 -0600) committer Alexandre Julliard julliard@winehq.org Thu, 9 Mar 2023 14:02:43 +0000 (15:02 +0100) commit 775a2d5f4cc9a84bd9473d5fd81c67f29a62583f
winex11: Retrieve the pixel format from win32u for normal windows in wglGetPixelFormat().
[1] https://source.winehq.org/git/wine.git/commit/775a2d5f4cc9a84bd9473d5fd81c67...
--- commit [2] --- author Paul Gofman pgofman@codeweavers.com Mon, 13 Mar 2023 23:07:56 +0000 (17:07 -0600) committer Alexandre Julliard julliard@winehq.org Thu, 16 Mar 2023 17:55:30 +0000 (18:55 +0100) commit 446da60e78beb321d776b48cdee6f764c81b924b tree 3baea2cac7dd1f9ebf634d02bdb19477e743042d tree parent 0791c3ac44d40e460dd3e44b38db846b3dbbe3f9 commit | diff winex11.drv: Don't allow changing internal pixel format if conflicts with non-internal.
[2] https://source.winehq.org/git/wine.git/commit/446da60e78beb321d776b48cdee6f7...
Maybe you can split your patch and check if both commits must be reverted or only one?
(In reply to joaopa from comment #9)
The offending commit is 46c8a637525d0f1cf67830295fb460c819b800b6
That doesn't match the patch from comment 8. How did you conclude that it's that commit?
Regards.
https://bugs.winehq.org/show_bug.cgi?id=54704
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- Regression SHA1| |46c8a637525d0f1cf67830295fb | |460c819b800b6
--- Comment #11 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Hello,
(In reply to Olivier F. R. Dierick from comment #10)
(In reply to joaopa from comment #9)
The offending commit is 46c8a637525d0f1cf67830295fb460c819b800b6
That doesn't match the patch from comment 8. How did you conclude that it's that commit?
Oh, ok. I see it now. Some code changes come from that patch too.
Regards.
https://bugs.winehq.org/show_bug.cgi?id=54704
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |z.figura12@gmail.com
https://bugs.winehq.org/show_bug.cgi?id=54704
--- Comment #12 from Olivier F. R. Dierick o.dierick@piezo-forte.be --- Hello,
I added the commit author to this bug.
Regards.
https://bugs.winehq.org/show_bug.cgi?id=54704
--- Comment #13 from reserv0@yahoo.com --- (In reply to Olivier F. R. Dierick from comment #10)
Maybe you can split your patch and check if both commits must be reverted or only one?
Yes, and reverting https://source.winehq.org/git/wine.git/commit/775a2d5f4cc9a84bd9473d5fd81c67... is actually enough to fix the regression.
https://bugs.winehq.org/show_bug.cgi?id=54704
Olivier F. R. Dierick o.dierick@piezo-forte.be changed:
What |Removed |Added ---------------------------------------------------------------------------- Regression SHA1|46c8a637525d0f1cf67830295fb |775a2d5f4cc9a84bd9473d5fd81 |460c819b800b6 |c67f29a62583f
https://bugs.winehq.org/show_bug.cgi?id=54704
--- Comment #14 from reserv0@yahoo.com --- I see that the faulty commit has still not been reversed in Wine v8.9... Why is that?
https://bugs.winehq.org/show_bug.cgi?id=54704
--- Comment #15 from joaopa jeremielapuree@yahoo.fr --- Thats not the way of working of wine.
If a patch introduces a regression, then the patch needs to be improved with a new patch. Not reverting and losing the thing it fixed.
That's the general way. Obviously, if the patch breaks tons of features, it will be reverted, waiting for a better solution (sometimes it happens)
But it is not the case of the patch of this bug report.
https://bugs.winehq.org/show_bug.cgi?id=54704
--- Comment #16 from reserv0@yahoo.com --- (In reply to joaopa from comment #15)
Thats not the way of working of wine.
If a patch introduces a regression, then the patch needs to be improved with a new patch. Not reverting and losing the thing it fixed.
LOL !
No surprise Wine needs decades to mature to something barely usable then.
It is a *basic rule* in programming to revert ANY change (or putative "fix") causing a regression, UNTIL a better change/fix that is not causing that regression is found.
As it is, you are basically condemning Wine users to live with tons of bugs that "do not break tons of feature" but nonetheless render Wine useless for their specific usage...
Totally illogical!
https://bugs.winehq.org/show_bug.cgi?id=54704
--- Comment #17 from Zeb Figura z.figura12@gmail.com --- It doesn't make any sense to revert a patch that fixes a bug just to fix another bug. All you're doing is trading one broken application for another.
https://bugs.winehq.org/show_bug.cgi?id=54704
Béla Gyebrószki gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- See Also| |https://bugs.winehq.org/sho | |w_bug.cgi?id=55471
https://bugs.winehq.org/show_bug.cgi?id=54704
--- Comment #18 from Gijs Vermeulen gijsvrm@gmail.com --- The GOG version of this game (v1.7) works for me using latest wine-git (wine-8.14-59-g707d299da62). Tried both 'DKII-DX.exe' and 'wine start Launch\ Dungeon\ Keeper\ 2.lnk'.
Is this the same version you tested?
https://bugs.winehq.org/show_bug.cgi?id=54704
reserv0@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED
--- Comment #19 from reserv0@yahoo.com --- (In reply to Gijs Vermeulen from comment #18)
The GOG version of this game (v1.7) works for me using latest wine-git (wine-8.14-59-g707d299da62).
Sorry for the late reply, but I rarely ever check this email...
I so far always applied the reversal patch to my Wine builds, so I did not notice if/when the bug got fixed.
Today, I compiled Wine v8.18 without the patch, and DKII indeed seems to work fine now...
Case closed, I suppose.
Thanks and take care!
https://bugs.winehq.org/show_bug.cgi?id=54704
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #20 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 8.19.