System Environment: -------------------------- Platform: IVB Libdrm: (master)2.4.26 Mesa: (7.11)b90c710c6cd8017f59b09d935fbbbe94ada81a12 Xserver: (server-1.10-branch)xorg-server-1.10.2.901-5-g79ef102c3adf7cae8982b05320109d0439e6587c Xf86_video_intel:(master)2.15.0-152-g18d08e49d270b7a05f14a309759c9315e5ab9679 Cairo: (master)ea645913ba8739377ee2e2b51480310befc19b76 Libva: (master)5343740dfec289858cfafda64dd5260179d09d4f Kernel: (drm-intel-fixes) f01c22fd59aa10a3738ede20fd4b9b6fd1e2eac3 Bug detailed description: ------------------------- GPU hang when running 3D games or its demo like openarena.Pls see Xorg.log and i915_error_state.log. The problem doesn't exist on SNB. Reproduce steps: ---------------- 1.xinit& 2.run openarena or demo vblank_mode=0 openarena +exec pts +set r_mode -1 +set r_fullscreen 1 +set r_customWidth 1024 +set r_customHeight 768
Created attachment 48634 [details] Xorg.log
Created attachment 48635 [details] i915_error_state.tar.gz
Created attachment 48636 [details] dmesg
First there is the missed IRQ issue, which will need the same workarounds as SNB, or a real fix. ;-) But there is also a genuine GPU hang...
When enable semaphores, no "missed IRQ" issue, but GPU still hang on IVB.
Does the hang occur every time, or is it intermittent? In my own testing, I found that OA hung once in a while, but usually worked fine...
Nevermind, I can reproduce it consistently now. Must be a recent occurance. Looking into it.
Test commit 2b1ecb7337592a7bf0989efac46a5b52daab769e,the problem still exists.
This still occurs with Ivybridge C0 hardware.
To clarify: this is a software bug in our driver. I haven't had time to analyze it further.
Created attachment 50936 [details] [review] Patch to fix the GPU hangs by emitting depth stalls. With the attached patch, OpenArena no longer hangs my Ivybridge system.
(In reply to comment #11) > Created an attachment (id=50936) [details] > Patch to fix the GPU hangs by emitting depth stalls. > With the attached patch, OpenArena no longer hangs my Ivybridge system. Hi Ken, With your patch on IvyBridge C0, all the 3D games(openarena, urbanterror and nexuiz) will no longer make GPU hang though there is still some error message in dmesg like: [drm:i915_hangcheck_elapsed] *ERROR* Hangcheck timer elapsed... GPU hung [drm:i915_wait_request] *ERROR* i915_wait_request returns -11 (awaiting 437 at 431, next 444) But with this patch on some other IvyBridge machines, openarena will also work well without GPU hang but other games like urbanterror will make system hang.
commit 8bd27a5b080157cb1d5fc0383ce45574c7b16aa5 Author: Kenneth Graunke <kenneth@whitecape.org> Date: Thu Sep 1 04:18:20 2011 -0700 i965: Emit depth stalls and flushes before changing depth state on Gen6+. Fixes OpenArena on Gen7. Technically, adding only the first depth stall fixes it, but the documentation says to do all three, and the Windows driver seems to do it. Not observed to fix anything on Gen6 yet. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=38863 Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Eric Anholt <eric@anholt.net> It sounds like OpenArena is working now. Jian, feel free to open bug reports for other games, but I'd prefer to track those as separate issues.
(In reply to comment #13) > commit 8bd27a5b080157cb1d5fc0383ce45574c7b16aa5 > Author: Kenneth Graunke <kenneth@whitecape.org> > Date: Thu Sep 1 04:18:20 2011 -0700 > i965: Emit depth stalls and flushes before changing depth state on Gen6+. > Fixes OpenArena on Gen7. Technically, adding only the first depth stall > fixes it, but the documentation says to do all three, and the Windows > driver seems to do it. > Not observed to fix anything on Gen6 yet. > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=38863 > Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> > Reviewed-by: Eric Anholt <eric@anholt.net> > It sounds like OpenArena is working now. Jian, feel free to open bug reports > for other games, but I'd prefer to track those as separate issues. With the newest code on master branch and kernel 3.1.0-rc6 on -next branch, there is no GPU hang now. Ken, can you also apply it to 7.11 branch?
let's leave it open until it's fixed on 7.11 branch.
commit 38dfedccb2a2b695a600350a75113e8c35683498 Author: Kenneth Graunke <kenneth@whitecape.org> Date: Thu Sep 1 04:18:20 2011 -0700 i965: Emit depth stalls and flushes before changing depth state on Gen6+. Fixes OpenArena on Gen7. Technically, adding only the first depth stall fixes it, but the documentation says to do all three, and the Windows driver seems to do it. Not observed to fix anything on Gen6 yet. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=38863 Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Eric Anholt <eric@anholt.net> (cherry picked from commit 02c4dc807e91640c69c8addc3c797300a3c536ad)
Jian, can you help verifying this bug?
Verified with the above commit git-38dfedc.
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.