Bug 85661

Summary: planetary annihilation gpu lockup
Product: Mesa Reporter: kdj0c
Component: Drivers/Gallium/radeonsiAssignee: Default DRI bug account <dri-devel>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: kdj0c
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: dmesg when lockup occurs
glxinfo

Description kdj0c 2014-10-30 20:27:35 UTC
Created attachment 108705 [details]
dmesg when lockup occurs

when starting a single player game with planetary annihilation (steam version). there is a gpu lockup after about 10s (100% reproductible).

I'm able to play with the intel HD4000 and same mesa stack (but it's a bit slow :p).

system setup :

Archlinux 64bits
mesa 10.3.2
kernel 3.17.1-1-ARCH
radeon HD 7950

tried with and without hyperz, same lockup occurs.

attached dmesg, and glxinfo
Comment 1 kdj0c 2014-10-30 20:28:13 UTC
Created attachment 108706 [details]
glxinfo
Comment 2 kdj0c 2014-10-30 20:29:52 UTC
by the way I've started a thread on Planetary annihilation forum :

https://forums.uberent.com/threads/pa-with-radeonsi-driver-on-archlinux.65119/#post-1017665
Comment 3 Michel Dänzer 2014-10-31 09:09:41 UTC
Can you create an apitrace reproducing the problem?

Might be related to bug 79417.
Comment 4 kdj0c 2014-11-03 06:54:11 UTC
I've taken an apitrace, but the file is huge (1.4G) and I can't attach it to the bugzilla.

I have uploaded it here (compressed to 300Mo):
https://djinvi.net/jirafeau/f.php?h=2OGdEMf6
Comment 5 Michel Dänzer 2014-11-04 09:25:18 UTC
If you replay the apitrace with the glretrace command, does it reproduce the lockup?
Comment 6 kdj0c 2014-11-04 22:26:14 UTC
replaying the trace returns an error GLXBadFBConfig.

I don't really understand why it can fail to replay a trace on the same system the trace have been taken.



glretrace -v palockup2.trace 
0 8 glXCreateContext(dpy = 0x22bb590, vis = &{visual = 0x22c6940, visualid = 548, screen = 0, depth = 24, c_class = 4, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8}, shareList = NULL, direct = True) = 0x2307860
0 9 glXMakeCurrent(dpy = 0x22bb590, drawable = 56623106, ctx = 0x2307860) = True
0 10 glViewport(x = 0, y = 0, width = 32, height = 32)
0 11 glScissor(x = 0, y = 0, width = 32, height = 32)
0 17 glXMakeCurrent(dpy = 0x22bb590, drawable = 0, ctx = NULL) = True
0 18 glXDestroyContext(dpy = 0x22bb590, ctx = 0x2307860)
0 20 glXCreateContext(dpy = 0x22bb590, vis = &{visual = 0x22c8348, visualid = 667, screen = 0, depth = 24, c_class = 5, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8}, shareList = NULL, direct = True) = 0x23cf9c0
0 21 glXMakeCurrent(dpy = 0x22bb590, drawable = 56623109, ctx = 0x23cf9c0) = True
0 22 glViewport(x = 0, y = 0, width = 32, height = 32)
0 23 glScissor(x = 0, y = 0, width = 32, height = 32)
0 26 glXMakeCurrent(dpy = 0x22bb590, drawable = 0, ctx = NULL) = True
0 27 glXDestroyContext(dpy = 0x22bb590, ctx = 0x23cf9c0)
0 36 glXCreateContext(dpy = 0x22bb590, vis = &{visual = 0x22c6940, visualid = 548, screen = 0, depth = 24, c_class = 4, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8}, shareList = NULL, direct = True) = 0x2491e80
0 37 glXMakeCurrent(dpy = 0x22bb590, drawable = 56623112, ctx = 0x2491e80) = True
0 38 glViewport(x = 0, y = 0, width = 32, height = 32)
0 39 glScissor(x = 0, y = 0, width = 32, height = 32)
0 45 glXMakeCurrent(dpy = 0x22bb590, drawable = 0, ctx = NULL) = True
0 46 glXDestroyContext(dpy = 0x22bb590, ctx = 0x2491e80)
0 48 glXCreateContext(dpy = 0x22bb590, vis = &{visual = 0x22c8348, visualid = 667, screen = 0, depth = 24, c_class = 5, red_mask = 16711680, green_mask = 65280, blue_mask = 255, colormap_size = 256, bits_per_rgb = 8}, shareList = NULL, direct = True) = 0x243db40
0 52 glXCreateContextAttribsARB(dpy = 0x22bb590, config = 0x23c6d40, share_context = NULL, direct = True, attrib_list = {GLX_CONTEXT_MAJOR_VERSION_ARB, 4, GLX_CONTEXT_MINOR_VERSION_ARB, 4, GLX_CONTEXT_PROFILE_MASK_ARB, GLX_CONTEXT_CORE_PROFILE_BIT_ARB, 0}) = NULL
X Error of failed request:  GLXBadFBConfig
  Major opcode of failed request:  156 (GLX)
  Minor opcode of failed request:  34 ()
  Serial number of failed request:  72
  Current serial number in output stream:  69
Comment 7 kdj0c 2014-11-04 22:41:09 UTC
it is bug in apitrace :

https://www.mail-archive.com/apitrace@lists.freedesktop.org/msg00650.html


I have installed the git version of apitrace, and now replaying the trace works (and lock up my GPU ...)
Comment 8 kdj0c 2014-11-14 19:42:47 UTC
any update ?
is there anything I can do to help resolve this bug ?
Comment 9 Michel Dänzer 2015-01-29 06:55:59 UTC
Does this still happen with current Git of Mesa and LLVM?

The apitrace seems to play back fine on my Kaveri, no lockups.
Comment 10 kdj0c 2015-02-04 09:20:34 UTC
the last apitrace is not crashing anymore with newest mesa (10.4.3) and kernel 3.19, llvm 3.5.1


but the game still has the same hardlockup a few seconds later when running the game.

I have uploaded a new apitrace at https://djinvi.net/jirafeau/f.php?h=35NcHizE
I checked that with glretrace, the hard lockup is reproductible.


I used to install mesa-git, but I get too much regressions, with the system unable to boot, so I'm sticking with stable mesa on archlinux.
Comment 11 kdj0c 2015-02-07 13:47:44 UTC
I have installed mesa-git, and llvm-svn, and it's working now, no more gpu lockup.

llvm 3.7svn, Linux 3.19.0-rc7-ge36f014 

OpenGL vendor string: X.Org
OpenGL renderer string: Gallium 0.4 on AMD TAHITI
OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.5.0-devel (git-0467a52)

I can mark it as resolved.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.