https://bugs.winehq.org/show_bug.cgi?id=55045
Bug ID: 55045 Summary: NFS Most Wanted has missing graphics with WineD3D in WoW64 mode Product: Wine Version: 8.10 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: d3d Assignee: wine-bugs@winehq.org Reporter: aidas957@gmail.com Distribution: ArchLinux
Created attachment 74608 --> https://bugs.winehq.org/attachment.cgi?id=74608 NFS Most Wanted graphics corruption screenshot
Hello,
as you have seen in the title, Need for Speed Most Wanted has missing graphics when using WineD3D together with the new WoW64 mode (the old WoW64 mode works fine as expected)
The first thing you'll notice is that the intro video is a black screen with a semi-broken cursor
After that the start screen is completely black with some flickering (and then once the main menu loads the 3D scene looks fine but the 2D menu interface is missing completely except for some weird flickers)
If I load the game in the old WoW64 mode, the issues disappear and the game looks correct
Now for some system information: Kernel: 6.3.6-arch1 Graphics driver: Mesa 23.1.2 (with radeonsi driver being used) GPU: AMD Renoir (the GPU in my Ryzen 5 4600H) Window manager: KWin 5.27.5 (Wayland)
I couldn't upload a log and a trace to the Bugzilla attachments due to file size limits, so here they are:
WineD3D WoW64 apitrace (done from the Linux side): https://drive.google.com/file/d/1JkRbuoq9QLeQ8EsLvIVRnVvn4Ub1PthI/view Huge Wine log (with +d3d,+d3d9,-ver,-d3dx): https://drive.google.com/file/d/1731nk11aUqVrJHw42TbulQ9WkvmT7rTz/view
Note: I had to apply this patch (https://gitlab.winehq.org/wine/wine/-/commit/13b9d7da6446ba6386be6c586c7d152...) to prevent the game from crashing (because WoW64 doesn't support the PERSISTENT_BIT flag yet)
https://bugs.winehq.org/show_bug.cgi?id=55045
Zeb Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |z.figura12@gmail.com
--- Comment #1 from Zeb Figura z.figura12@gmail.com --- Does the game work if you hack out persistent mapping on an old-style wow64 build?
https://bugs.winehq.org/show_bug.cgi?id=55045
serenity@floorchan.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |serenity@floorchan.org
--- Comment #2 from serenity@floorchan.org --- (In reply to Zeb Figura from comment #1)
Does the game work if you hack out persistent mapping on an old-style wow64 build?
Hi, I did some testing on a build of wine 8.10 with mr3053 applied on wow64, and then mr3053 hacked up to always only offer opengl 4.3 instead on old wow64.
Some notes: 1. Most, if not all Direct3D games are broken on new wow64, with similar issues(CSS(only displays a quit button), Deus Ex(renders a single digit number of polys on the screen), very basic directx7 tests fail even). 2. This issue is isolated to new wow64, and doesn't occur on old wow64. The hacked mr3053 build seems to run these games without graphical issues.
https://bugs.winehq.org/show_bug.cgi?id=55045
--- Comment #3 from Aida JonikienÄ— aidas957@gmail.com --- It looks like this PR works around this issue: https://gitlab.winehq.org/wine/wine/-/merge_requests/3047
After looking in the apitrace again I now see that glGetBufferPointerv() returns a 32-bit pointer (and the memcpy() destination is also a 32-bit pointer) so that might be the main difference that's making the games work properly again (so maybe pointer conversion is messed up somewhere?)
Weirdly Unigine Heaven (in native OpenGL mode) has no issues with 64-bit pointers despite being a 32-bit application in memcpy() and glGetBufferPointerv() calls (which are a part of the wow64_map_buffer() function)
https://bugs.winehq.org/show_bug.cgi?id=55045
--- Comment #4 from Zeb Figura z.figura12@gmail.com --- I believe this was fixed by https://source.winehq.org/git/wine.git/commitdiff/77981d45488d2d4458b90eee5e8acb7a17e84100, right?
https://bugs.winehq.org/show_bug.cgi?id=55045
--- Comment #5 from Aida JonikienÄ— aidas957@gmail.com --- It does fix the issue (with a huge performance downgrade though because I counted 3 FPS in the Most Wanted title screen)
Hopefully the OpenGL performance issues can be fixed somehow (I think the best solution will be hooking mmap() if the OpenGL extension never gets released which is quite likely considering Khronos has basically moved to Vulkan)
https://bugs.winehq.org/show_bug.cgi?id=55045
Zeb Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED Fixed by SHA1| |77981d45488d2d4458b90eee5e8 | |acb7a17e84100
--- Comment #6 from Zeb Figura z.figura12@gmail.com --- (In reply to Aida JonikienÄ— from comment #5)
It does fix the issue (with a huge performance downgrade though because I counted 3 FPS in the Most Wanted title screen)
Marking fixed then. The performance issue is covered by bug 55981.
https://bugs.winehq.org/show_bug.cgi?id=55045
Zeb Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|d3d |opengl
https://bugs.winehq.org/show_bug.cgi?id=55045
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #7 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 9.0-rc1.