iXit / Mesa-3D

Please use official https://gitlab.freedesktop.org/mesa/mesa/ !
https://github.com/iXit/Mesa-3D/wiki
66 stars 13 forks source link

World Of Tanks 9.16 crashes when entering battle with r600g card #252

Open G-P-L opened 7 years ago

G-P-L commented 7 years ago

World Of Tanks 9.16 with Gallium Nine crashes after the battle loading screen reaches 100% and the game starts to render the environment. There is only one exception, the Mines map when I playing on it in training mode. The garage and the gui renders correctly. This phenomenon is happening only with my Radeon HD 8650G card, the game is working perfectly with the Radeon R5 M230 (which is used with DRI_PRIME).

Cards: Radeon HD 8650G (IGP): AMD ARUBA (Terascale 3) - r600g + nine - both DRI2 and 3 mode tested -> crash when entering battle Radeon R5 M230 (dedicated): AMD HAINAN (GCN1) - radeonsi + nine (env DRI_PRIME=1 thread_submit=true) - DRI3 -> works perfectly (this card is slower than the IGP - this is why I want to use the HD 8650G)

System: Lubuntu 16.04.1 (all updates installed) Linux 4.8.6 (from Ubuntu Mainline Kernel PPA) Mesa 13.1.0-devel (latest Oibaf PPA updates installed) Wine 1.9.23 (amd64) with Gallium Nine (Nick Sarnie PPA) Wineprefix overrides: d3dx9_36, msvcrt110, msvcp110 (OS setting: Windows XP)

Wine debug info attached. debug.txt

axeldavy commented 7 years ago

Do debug the crash, we would need a log with debug info on.

The mesa build needs to have debug build one, and you need to set NINE_DEBUG=all.

iiv3 commented 7 years ago

I don't see any crash in the attached debug log. When you say crash, it is assumed that the CPU program gets segmentation fault and is been terminated.

Now, if you get GPU hang (and if lucky, reset), it might be another known problem. R600 uses a Shader Backend to optimize shaders for speed, but it have few known bugs. Try setting R600_DEBUG=nosb and see if this fixes the problem. If it does then try R600_DEBUG=sbsafemath.

G-P-L commented 7 years ago

Thanks for help!

So far, I tried these: 1) R600_DEBUG=nosb & R600_DEBUG=sbsafemath -> none of them worked 2) NINE_DEBUG=all -> see wot_nine_debug_all.txt for details 3) WINEDEBUG=+d3dadapter9,+d3d9 -> see wot_winedebug.txt for details

And this is the Wine error message: wot_error_message.txt

(I'm not an expert debugger, so sorry if I'm not doing so well...)

axeldavy commented 7 years ago

That's weird, I see no reason for the crash in the log.

siro20 commented 7 years ago

It's WINEDEBUG=+d3d9nine

iiv3 commented 7 years ago

The crash is entirely in WorldOfTanks.exe, that makes it a bit harder to trace. It's null reference, meaning that some function returned null pointer where the program doesn't expecte or check. It may not even be nine related. e.g. the log shows msvcrt/msvcp stubs right before the crash.

Anyway, try an older version of mesa, e.g. 13.0 release, 12.0 release. Just in case if the crash is side effect of a recent change.

If this doesn't help, use mesa latest stable release and try some of appdb.winehq.org advises, like using winetricks to install d3dx9_36,d3dx9_43, msvcrt110.

G-P-L commented 7 years ago

I made a WINEDEBUG=+d3d9nine run, this is the result: wot_winedebug_d3d9nine.txt

I know that WoT has the problem (starting with the 9.9 version if I remember well) that it needs msvcp110 and mvscr110 override to use these two dlls inside the program directory - the game not even reach the garage without this override so its added by default. I tried to install vcrun2012 through Winetricks to provide these dlls - no difference. I also tried to install d3dx9_43 or all the d3dx9 dlls - no difference so far.

I also forgot to mention that if I play on the only working map the game has random texturing bugs (tanks are turning completely pink/red when they destroyed or missing GUI elements like no borders around panels or buttons) which not present when I see the vehicles in the garage nor when I use the other card.

The most weird thing that the game is working absolutely well without bugs, errors or crashes when I'm using the GCN/radeonsi card with the same configuration (only differences are the DRI_PRIME and thread submit env parameters)...

I will try the game with an older Mesa...

siro20 commented 7 years ago

I've installed "World of Tanks Blitz" on Steam. Is this the game you are referring to ?

axeldavy commented 7 years ago

no idea

G-P-L commented 7 years ago

WoT Blitz is the smart phone version of World of Tanks which is ported to PC. I'm speaking about the original desktop version.

iiv3 commented 7 years ago

Is it this one http://worldoftanks.com/ ? It is Free2Play game.

G-P-L commented 7 years ago

Yes, this is that game.