After updating mesa to current git I always get a GPU lockup when the game is about to start. After git bisect I got the following commit:
Author: Tom Stellard <firstname.lastname@example.org>
Date: Sun Mar 27 01:17:43 2011 -0700
prog_optimize: Fix reallocating registers for shaders with loops
Registers that are used inside of loops need to be considered live
starting with the first instruction of the outermost loop.
NOTE: This is a candidate for the 7.9 and 7.10 branches.
Reviewed-by: Eric Anholt <email@example.com>
tested with kernels:
This is the call trace:
WARNING: at drivers/gpu/drm/radeon/radeon_fence.c:246 0xffffffff812dc0ba()
glxinfo (with mesa at git head):
OpenGL renderer string: Gallium 0.4 on AMD RV770
OpenGL version string: 2.1 Mesa 7.11-devel (git-a8bbce8)
Added commit author (hope this is ok?).
*** Bug 37263 has been marked as a duplicate of this bug. ***
I'm having the same problem with Left 4 Dead on:
-- system architecture: 32-bit
-- Linux distribution: Debian unstable
-- GPU: REDWOOD
-- Model: XFX Radeon HD 5670 1GB
-- Display connector: DVI
-- xf86-video-ati: 6.14.1
-- xserver: 1.10.1
-- mesa: git-51095f7
-- drm: 2.4.25
-- kernel: 2.6.39-rc7
Reverting the commit mentioned above works.
The apitrace uploaded here might be useful to reproduce the hang:
If you run with MESA_GLSL=nopt, does it still crash?
With nopt it's even worse, I get a GPU hang and this error on the terminal "EE r600_pipe.c:429 r600_get_param - r600: unknown param 45" when I try to start the game.
Here it also got worse With MESA_GLSL=nopt -> The game does not show the menu anymore and the GPU does not reset (systems frozen).
If there is anything I could do to help debug this issue (test patches or add more traces), please let me know.
With MESA_GLSL=nopt the code that was changed by the bisected commit is not being executed, so I think the real problem might be somewhere else. I guess you could try bisecting again with MESA_GLSL=nopt and maybe you'll come up with a different bad commit.
(In reply to comment #7)
> With MESA_GLSL=nopt the code that was changed by the bisected commit is not
> being executed, so I think the real problem might be somewhere else. I guess
> you could try bisecting again with MESA_GLSL=nopt and maybe you'll come up with
> a different bad commit.
I might try this. Enrico, do you remember what the good revision you used for the bisect was, 7.10?
I noticed that a few piglit tests causes GPU hang/resets when run with MESA_GLSL=nopt. Is this to be expected or is it worth to file bugs?
The failing tests are glsl-fs-atan-2, glsl-fs-lots-of-tex, glsl-orangebook-ch06-bump and possibly others. They run without problems if nopt isn't used.
There's been a few hang-related fixes in git master over the last days. I can no longer reproduce the TF2 hang, or the hangs in piglit with nopt.
Enrico, can you re-test to be sure it has been fixed?
Yes, this bug is fixed. No more GPU lockups. The game does not run with MESA_GLSL=nopt yet (something about "missing vertex shader" and "EE r600_shader.c:145 r600_pipe_shader_create - translation from TGSI failed !"), but that's another story. Thanks