http://bugs.winehq.org/show_bug.cgi?id=30330
Bug #: 30330 Summary: World of Tanks 0.7.2: game freeze on AMD GPU Product: WineHQ Bugzilla Version: unspecified Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: bugzilla-unknown AssignedTo: wine-bugs@winehq.org ReportedBy: ar.fahrutdinov@gmail.com Classification: Unclassified
OS version: Debian 32 bit Wine version:1.4 and 1.35 Catalyst version: 12.3
Game freezes after a few seconds of start without any suspect message in log exсepting that:
err:winediag:shader_generate_glsl_declarations The hardware does not support enough uniform components to run this shader, it may not render correctly.
Previous version of this game runs properly.
Full (with WINEDEBUG=+d3d_shader) logs is in attachment.
Related Catalyst bug: http://ati.cchtml.com/show_bug.cgi?id=474
http://bugs.winehq.org/show_bug.cgi?id=30330
--- Comment #1 from alexfv ar.fahrutdinov@gmail.com 2012-04-01 11:19:02 CDT --- Created attachment 39634 --> http://bugs.winehq.org/attachment.cgi?id=39634 GLSL error log (WINEDEBUG=+d3d_shader)
http://bugs.winehq.org/show_bug.cgi?id=30330
--- Comment #2 from alexfv ar.fahrutdinov@gmail.com 2012-04-01 11:19:28 CDT --- Created attachment 39635 --> http://bugs.winehq.org/attachment.cgi?id=39635 Short log
http://bugs.winehq.org/show_bug.cgi?id=30330
Vitaliy Margolen vitaliy-bugzilla@kievinfo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|bugzilla-unknown |-unknown Version|unspecified |1.4 Product|WineHQ Bugzilla |Wine
--- Comment #3 from Vitaliy Margolen vitaliy-bugzilla@kievinfo.com 2012-04-01 11:56:23 CDT --- Not bugzilla bug.
err:winediag:shader_generate_glsl_declarations The hardware does not support enough uniform components to run this shader, it may not render correctly.
This pretty much means nothing Wine can do about it. Get a better hardware.
http://bugs.winehq.org/show_bug.cgi?id=30330
--- Comment #4 from Henri Verbeet hverbeet@gmail.com 2012-04-01 16:57:23 CDT --- If the reporter really has Radeon HD 6xxx hardware like the Catalyst bug report says, that's pretty capable hardware and this shouldn't be an issue. This might be a case of old or broken 32-bit drivers instead, or perhaps Catalyst regressed on this. A +wgl,+d3d_caps log might be informative. This bug also looks suspiciously like bug 30319, and the general advice of preferring r600g over fglrx applies here as well.
http://bugs.winehq.org/show_bug.cgi?id=30330
--- Comment #5 from alexfv ar.fahrutdinov@gmail.com 2012-04-01 22:52:59 CDT --- Created attachment 39641 --> http://bugs.winehq.org/attachment.cgi?id=39641 glxinfo log
http://bugs.winehq.org/show_bug.cgi?id=30330
--- Comment #6 from alexfv ar.fahrutdinov@gmail.com 2012-04-01 22:54:13 CDT --- As glxinfo reports, my AMD HD6550D has hardware support of OpenGL 4.1 and shading language 4.20, it's enough to run the game on Windows.
glxinfo, +wgl and +d3d_caps logs are in attachments.
http://bugs.winehq.org/show_bug.cgi?id=30330
--- Comment #7 from alexfv ar.fahrutdinov@gmail.com 2012-04-01 22:55:04 CDT --- Created attachment 39642 --> http://bugs.winehq.org/attachment.cgi?id=39642 +wgl log
http://bugs.winehq.org/show_bug.cgi?id=30330
--- Comment #8 from alexfv ar.fahrutdinov@gmail.com 2012-04-01 22:55:29 CDT --- Created attachment 39643 --> http://bugs.winehq.org/attachment.cgi?id=39643 +dgd_caps log
http://bugs.winehq.org/show_bug.cgi?id=30330
--- Comment #9 from alexfv ar.fahrutdinov@gmail.com 2012-04-01 22:56:42 CDT --- +d3d_caps, sorry
http://bugs.winehq.org/show_bug.cgi?id=30330
--- Comment #10 from Simon Simon80@gmail.com 2012-04-01 23:05:27 CDT --- Created attachment 39644 --> http://bugs.winehq.org/attachment.cgi?id=39644 0001-Remove-support-for-GL_ARB_sync.patch
I strongly suspect that I'm having the same issue, which started since World of Tanks released version 0.7.2. However, the shader error is a red herring. The real problem is the deadlock: err:ntdll:RtlpWaitForCriticalSection section 0x7bcb0ee4 "../../../dlls/ntdll/loader.c: loader_section" wait timed out in thread 0041, blocked by 0009, retrying (60 sec)
I noticed that Debian's ancient 1.1.34 packages didn't freeze on login, so I used git bisect and found that the problems start with commit 96b150929b0791c7c30ade49d55cedf2d608537e: wined3d: Add an ARB_sync implementation of event queries. I manually reverted this in 1.5.1, tried again, and got as far as logging into the game (previously impossible due to deadlock), at which point I hit another deadlock that only happens after committing to join a battle, which makes this highly undesirable to test on one's real account: err:ntdll:RtlpWaitForCriticalSection section 0x7bcb13e0 "virtual.c: csVirtual" wait timed out in thread 0038, blocked by 0009, retrying (60 sec) err:ntdll:RtlpWaitForCriticalSection section 0x110060 "heap.c: main process heap section" wait timed out in thread 0009, blocked by 0038, retrying (60 sec) err:ntdll:RtlpWaitForCriticalSection section 0x110060 "heap.c: main process heap section" wait timed out in thread 0044, blocked by 0038, retrying (60 sec) err:ntdll:RtlpWaitForCriticalSection section 0x110060 "heap.c: main process heap section" wait timed out in thread 0036, blocked by 0038, retrying (60 sec) err:ntdll:RtlpWaitForCriticalSection section 0x110060 "heap.c: main process heap section" wait timed out in thread 0037, blocked by 0038, retrying (60 sec) err:ntdll:RtlpWaitForCriticalSection section 0x110060 "heap.c: main process heap section" wait timed out in thread 0045, blocked by 0038, retrying (60 sec)
I quickly removed GL_ARB_sync from the extension map altogether and tried again, and found that it worked. I haven't had a chance to test this more than once, but I had several failed attempts before I made this change, which decreases the likelihood that it was a coincidence.
I'm attaching a patch that works around the issue by removing support for GL_ARB_sync.
http://bugs.winehq.org/show_bug.cgi?id=30330
--- Comment #11 from Henri Verbeet hverbeet@gmail.com 2012-04-02 04:22:11 CDT --- (In reply to comment #10)
Tanks released version 0.7.2. However, the shader error is a red herring. The
I guess, but the driver is still broken:
trace:d3d_caps:wined3d_adapter_init_gl_caps Max ARB_VERTEX_SHADER float constants: 256. trace:d3d_caps:wined3d_adapter_init_gl_caps Max ARB_FRAGMENT_SHADER float constants: 256.
While the hardware can do 4096 for both of those. Fglrx has had this problem before, apparently it regressed.
I quickly removed GL_ARB_sync from the extension map altogether and tried again, and found that it worked. I haven't had a chance to test this more than once, but I had several failed attempts before I made this change, which decreases the likelihood that it was a coincidence.
I'm attaching a patch that works around the issue by removing support for GL_ARB_sync.
I guess GL_ARB_sync is also broken in fglrx then, it seems to have some other issues with queries as well, like bug 29647.
http://bugs.winehq.org/show_bug.cgi?id=30330
Henri Verbeet hverbeet@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |DUPLICATE
--- Comment #12 from Henri Verbeet hverbeet@gmail.com 2012-04-02 04:22:43 CDT --- Resolving DUPLICATE.
*** This bug has been marked as a duplicate of bug 30319 ***
http://bugs.winehq.org/show_bug.cgi?id=30330
--- Comment #13 from alexfv ar.fahrutdinov@gmail.com 2012-04-03 00:58:31 CDT --- Thank you for patch, the game works. I hope, AMD developers will fix own drivers.
http://bugs.winehq.org/show_bug.cgi?id=30330
Jerome Leclanche adys.wh@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED CC| |adys.wh@gmail.com
--- Comment #14 from Jerome Leclanche adys.wh@gmail.com 2012-04-06 11:59:02 CDT --- Closing