[r600g-evergreen] GPU lockup in Stunt Rally (bisected)
Submitted by Benjamin Bellec
Assigned to Default DRI bug account
In Stunt Rally (v2.2.1), when applying specific graphic settings, the GPU hang few seconds after a race is started.
This is since commit 7e414b58 glsl: break the gl_FragData array into separate gl_FragData[i] variables author: Marek Olšák date: 2013-10-29 22:50:01 (GMT)
Easy steps to reproduce: 1- Download and extract the Linux game binary here: http://sourceforge.net/projects/stuntrally/files/2.2.1/ 2- Launch the game with the shell script (./StuntRally-2.2.1-linux/stuntrally) (it will launch a 64-bit binary on a 64-bit system) 3- Set the graphical settings to "Lowest", and close the game 4- Relaunch the game, and set this settings now: -> Graphics > Vegetation > "Trees multiplier" to 1.00 (in fact any value but 0.0) -> Graphics > Vegetation > check "Use Impostors" -> Graphics > Vegetation > uncheck "Impostors Only" -> Effects > check "Effects enabled" -> Effects > check "Soft Particules" 5- Close and relaunch the game in order to be sure that these new settings are applied 6- Start a "Single race", use the default one (track "I6-Flooded")
If one of these gfx settings is different, the GPU will not hang.
The last good commit (aec20d66) doesn't hangs the GPU when these settings are applied.
R600_DEBUG=nosb doesn't solve the issue.
I also tested with RV770 and there is no problem (expect rendering bugs for some things but not sure this commit is the problem in that case).
I tried to test with nouveau too (nv40 driver on a NV49/7900GT) but the game crash at start (segfault), with git master or even with the commit aec20d66).
Note that the game Stunt Rally have many graphical settings available, I don't know if all are very well handled by mesa. Game bugs or mesa "bugs"... I don't know.
Config: Fedora 19 x86-64 kernel 3.13.5-103.fc19.x86_64 libdrm 2.4.50 AMD CYPRESS (Radeon HD5870 with 1GB VRAM)
Build: ./autogen.sh --with-gallium-drivers=r600,nouveau --with-dri-drivers= --enable-texture-float --disable-dri3 --disable-r600-llvm-compiler --disable-gallium-llvm --enable-64-bit CFLAGS="-O0 -g -m64" CXXFLAGS="-O0 -g -m64" --libdir=/usr/lib64