https://bugs.winehq.org/show_bug.cgi?id=40477
Bug ID: 40477 Summary: Motocross madness does not start Product: Wine Version: 1.9.6 Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: directx-d3d Assignee: wine-bugs@winehq.org Reporter: wylda@volny.cz Distribution: ---
Created attachment 54237 --> https://bugs.winehq.org/attachment.cgi?id=54237 good 1.9.3-217 and bad 1.9.8 +d3d logs
Motocross madness does not start in wine-1.9.8. This is actually a regression caused by commit wine-1.9.5-94-g565a571:
commit 565a5715468fa990cf9e7cbfe38ac59ddcde1e76 Author: Józef Kucia jkucia@codeweavers.com Date: Fri Mar 11 13:28:03 2016 +0100
wined3d: Limit amount of video memory for older Windows versions.
This should affect only 32-bit applications when the emulated Windows version is set to "Windows 2003" or older.
This commit fixed bug 39878. Despite it should limit the mem, i see some suspicious lines like:
trace:d3d:resource_cleanup Decrementing device memory pool by 9216000 trace:d3d:adapter_adjust_memory Adjusted used adapter memory by 0xffffffffff736000 to 0x0.
Some week ago i made a note about Wine-1.9.6's new release comment at Phoronix: "I was quite surprised that I had to manually set the video memory with regedit in order for Lego Star Wars to work."
https://www.phoronix.com/forums/forum/software/desktop-linux/859021-wine-1-9...
https://bugs.winehq.org/show_bug.cgi?id=40477
Wylda wylda@volny.cz changed:
What |Removed |Added ---------------------------------------------------------------------------- URL| |http://www.fileplanet.com/1 | |0909/download/Motocross-Mad | |ness Keywords| |download, regression Distribution|--- |Debian CC| |joseph.kucia@gmail.com Regression SHA1| |565a5715468fa990cf9e7cbfe38 | |ac59ddcde1e76
--- Comment #1 from Wylda wylda@volny.cz --- Filling some fields...
https://bugs.winehq.org/show_bug.cgi?id=40477
Sebastian Lackner sebastian@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mstefani@redhat.com, | |sebastian@fds-team.de
https://bugs.winehq.org/show_bug.cgi?id=40477
--- Comment #2 from Wylda wylda@volny.cz --- Forgot to mention:
winetricks videomemorysize=1024 ... fixes the problem and winetricks videomemorysize=2048 ... breaks it again
https://bugs.winehq.org/show_bug.cgi?id=40477
--- Comment #3 from Józef Kucia joseph.kucia@gmail.com --- (In reply to Wylda from comment #0)
This commit fixed bug 39878. Despite it should limit the mem, i see some suspicious lines like:
trace:d3d:resource_cleanup Decrementing device memory pool by 9216000 trace:d3d:adapter_adjust_memory Adjusted used adapter memory by 0xffffffffff736000 to 0x0.
These are normal.
This issue was present before the mentioned commit for some GPUs. Motorcross Madness calls ddraw7_GetAvailableVidMem() at start and when it doesn't like the returned values it exits. The game happened to work for you by accident because it works when the reported amount of memory is 0xffffffff. It stopped to work now because the reported amount is now limited to 0x7fffffff. In any case, the game wasn't working with 2GB GPUs before the commit 565a5715468fa990cf9e7cbfe38ac59ddcde1e76.
I haven't debugged in which exact way the video memory size detection is broken in Motorcross Madness so I don't know the exact conditions the reported amount of memory have to meet but it seems that we could potentially use a little smaller value than LONG_MAX as a memory limit to make Motorcross Madness and Diablo 2 happy.
https://bugs.winehq.org/show_bug.cgi?id=40477
--- Comment #4 from Wylda wylda@volny.cz ---
...it seems that we could potentially use a little smaller value than LONG_MAX as a memory limit to make Motorcross Madness and Diablo 2 happy.
Results of memory size bisection:
7FFFFFFF bad 7F7FFFFF bad 7F7DFFFF bad 7F7CFFFF bad 7F7CDFFF bad 7F7CCFFF bad 7F7CC7FF bad
7F7CC000 bad
7F7CBFFF ok 7F7C7FFF ok 7F7BFFFF ok 7F77FFFF ok 7F6FFFFF ok 7F5FFFFF ok 7F3FFFFF ok 7EFFFFFF ok 7DFFFFFF ok 7BFFFFFF ok 77FFFFFF ok 6FFFFFFF ok
IMHO, it would be good to test also the "Lego Star Wars".
https://bugs.winehq.org/show_bug.cgi?id=40477
--- Comment #5 from Wylda wylda@volny.cz ---
Unfortunately i do not own Lego Star Wars, so i at least tested the demo. I found two demo versions. Both of them worked with "default" 0x7FFFFFFF. So can't reproduce.
BTW: Staging has a different approach to video mem limiting: wined3d-Limit_Vram. But i currently doonly 32bit builds of wine, so i guess it does not matter.
https://bugs.winehq.org/show_bug.cgi?id=40477
Wylda wylda@volny.cz changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Motocross madness does not |Motocross madness does not |start |start (VRAM, video memory | |size)
--- Comment #6 from Wylda wylda@volny.cz --- Another application 3Dmark 2000 says: "3DMark requires a 3D-accelerator with 4MB or more video memory". Results of bisection:
7FFFFFFF bad 7F83FFFF bad 7F747FFF bad 7F7387FF bad 7F7368FF bad 7F73613F bad 7F736000 bad 7F735FFF ok 7F735D5F ok 7F73597F ok 7F7349FF ok 7F730BFF ok 7F728FFF ok 7F709FFF ok 7F6CBFFF ok 7F64FFFF ok 7F45FFFF ok 7F07FFFF ok 7E0FFFFF ok 7C1FFFFF ok 783FFFFF ok 707FFFFF ok 60FFFFFF ok 41FFFFFF ok 04000000 ok
Interesting, that this used to work, because 0xFFFFFFFF does not work in this case.
https://bugs.winehq.org/show_bug.cgi?id=40477
--- Comment #7 from Józef Kucia joseph.kucia@gmail.com --- (In reply to Wylda from comment #6)
Another application 3Dmark 2000 says: "3DMark requires a 3D-accelerator with 4MB or more video memory". Results of bisection:
It seems that 3DMark2000 assumes that the total memory returned by ddraw doesn't include the amount of memory used by the display framebuffer. It calls gdi32.GetDeviceCaps() with PLANES, BITSPIXEL, HORZRES and VERTRES to estimate the amount of memory required by the display framebuffer. It adds the computed value to the amount of memory returned by ddraw7_GetAvailableVidMem(). We should probably take this into account.
https://bugs.winehq.org/show_bug.cgi?id=40477
--- Comment #8 from Wylda wylda@volny.cz --- OK, that make sense. But why it used to work with 4GB (wine was not limiting VRAM) and why it doesn't work now, when i set 4GB manually in the .c code?
https://bugs.winehq.org/show_bug.cgi?id=40477
--- Comment #9 from Józef Kucia joseph.kucia@gmail.com --- (In reply to Wylda from comment #8)
OK, that make sense. But why it used to work with 4GB (wine was not limiting VRAM) and why it doesn't work now, when i set 4GB manually in the .c code?
I guess you have to start it with sufficiently high screen resolution. Did you test both cases with the same resolution?
https://bugs.winehq.org/show_bug.cgi?id=40477
--- Comment #10 from Henri Verbeet hverbeet@gmail.com --- 4 GiB probably wrapped to something almost reasonable when adding the framebuffer size. I'm not sure what code you're using to set the video memory manually, so can't comment on why that would/wouldn't work.
https://bugs.winehq.org/show_bug.cgi?id=40477
--- Comment #11 from Wylda wylda@volny.cz --- I changed the memory size by "driver_info->vram_bytes = LONG_MAX;" as that comes from Diablo 2 patch.
But why it used to work with 4GB (wine was not limiting VRAM) and why it doesn't work now, when i set 4GB manually in the .c code?
I probably did some mistake here, like changed the value and recompile (without saving the change in .c), because now 3dmark works with 0xFFFFFFFF. When i compared the logs from wine-1.9.5 (good) and wine-1.9.6 (bad), there is also shown, that good uses value 0x100000000 and bad "0x7FFFFFFF".
Sorry for misleading comment 8.
https://bugs.winehq.org/show_bug.cgi?id=40477
--- Comment #12 from Wylda wylda@volny.cz --- I wanted to help with regression in bug 40484 and because it can't be reproduced under nVidia, i wanted to try it under vmware workstation 12 pro with 3d support. I did not bisect exact commit, but i guess it also belongs to this bug, as in wine-1.9.5:
trace:d3d:wined3d_device_get_available_texture_mem Emulating 0x40000000 bytes. 0x0 used, returning 0x40000000 left.
Under wine-1.9.6:
trace:d3d:wined3d_device_get_available_texture_mem Emulating 0x100000 bytes. 0x0 used, returning 0x100000 left. err:d3d:resource_init Out of adapter memory
But under VMware i set "Graphics memory - Maximum amount of guest memory that can be used for graphics memory: 768MB (recommended)".
https://bugs.winehq.org/show_bug.cgi?id=40477
fjfrackiewicz@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |fjfrackiewicz@gmail.com
--- Comment #13 from fjfrackiewicz@gmail.com --- How does this game behave under Wine 1.9.9?
https://bugs.winehq.org/show_bug.cgi?id=40477
Józef Kucia joseph.kucia@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Assignee|wine-bugs@winehq.org |joseph.kucia@gmail.com
--- Comment #14 from Józef Kucia joseph.kucia@gmail.com --- Created attachment 56394 --> https://bugs.winehq.org/attachment.cgi?id=56394 Patch
I'm attaching a patch for this problem, but I'm considering other workaround currently.
https://bugs.winehq.org/show_bug.cgi?id=40477
Józef Kucia joseph.kucia@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|NEW |RESOLVED Fixed by SHA1| |90909951154e1d663bebc134263 | |b4025eacbdabd Summary|Motocross madness does not |Motocross Madness and |start (VRAM, video memory |3DMark2000 do not start |size) |(VRAM, video memory size)
--- Comment #15 from Józef Kucia joseph.kucia@gmail.com --- Fixed.
http://source.winehq.org/git/wine.git/?a=commit;h=90909951154e1d663bebc13426...
https://bugs.winehq.org/show_bug.cgi?id=40477
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #16 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 2.0-rc4.
https://bugs.winehq.org/show_bug.cgi?id=40477
Michael Stefaniuc mstefani@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |1.8.x
https://bugs.winehq.org/show_bug.cgi?id=40477
Wylda wylda@volny.cz changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|CLOSED |REOPENED Resolution|FIXED |---
--- Comment #17 from Wylda wylda@volny.cz --- Hello Józef, thank you for the fix. 3D mark is fixed and Diablo II is also happy in wine-2.0-rc5.
Unfortunately Motocross Madness 1 still does not work without mem reg setting. To make it run, i still need a work around:
winetricks videomemorysize=1024
https://bugs.winehq.org/show_bug.cgi?id=40477
--- Comment #18 from Józef Kucia joseph.kucia@gmail.com --- (In reply to Wylda from comment #17)
Hello Józef, thank you for the fix. 3D mark is fixed and Diablo II is also happy in wine-2.0-rc5.
Unfortunately Motocross Madness 1 still does not work without mem reg setting. To make it run, i still need a work around:
winetricks videomemorysize=1024
Does it make any difference when you run Motocross Madness with a different desktop resolution (e.g. in virtual desktop)? Anyway, I'm afraid that we cannot do much more in order to workaround this issue.
https://bugs.winehq.org/show_bug.cgi?id=40477
Christian Costa titan.costa@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |titan.costa@gmail.com
--- Comment #19 from Christian Costa titan.costa@gmail.com --- Motocross Madness demo works for me with the fix. Not sure about the resolution but I guess it was 1something like 1024x768.
https://bugs.winehq.org/show_bug.cgi?id=40477
Wylda wylda@volny.cz changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|REOPENED |RESOLVED Resolution|--- |FIXED
--- Comment #20 from Wylda wylda@volny.cz ---
MCM1 is also OK like the others. Somehow the PREFIX for MCM had a Win10 :(
I'm really sorry Józef & Christian for messing the re-test and wasting your time.
https://bugs.winehq.org/show_bug.cgi?id=40477
Wylda wylda@volny.cz changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #21 from Wylda wylda@volny.cz --- Closing again.
https://bugs.winehq.org/show_bug.cgi?id=40477
Józef Kucia joseph.kucia@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Assignee|joseph.kucia@gmail.com |wine-bugs@winehq.org
https://bugs.winehq.org/show_bug.cgi?id=40477
--- Comment #22 from Michael Stefaniuc mstefani@redhat.com --- Remove 1.8.x target milestone from bugs that didn't make it into 1.8.x for one reason or another. This are all included in the stable 2.0 release.
https://bugs.winehq.org/show_bug.cgi?id=40477
Michael Stefaniuc mstefani@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|1.8.x |---