Summary: | [SNB] GPU hang in OilRush | ||
---|---|---|---|
Product: | Mesa | Reporter: | Mateusz Kaduk <mateusz.kaduk> |
Component: | Drivers/DRI/i965 | Assignee: | Kenneth Graunke <kenneth> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | major | ||
Priority: | medium | CC: | idr |
Version: | git | ||
Hardware: | x86-64 (AMD64) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
dmesg file with error
Captured i915_error_state file during hung-up patch to fix the hang, not otherwise tested Same hung but now in other game |
Description
Mateusz Kaduk
2012-01-25 02:17:10 UTC
Created attachment 56129 [details]
Captured i915_error_state file during hung-up
lspci -nn | grep VGA 00:02.0 VGA compatible controller [0300]: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller [8086:0116] (rev 09) I've trimmed this down to 104Kb/280 GL call trace that reproduces the problem. It looks like the culprit is glClear(GL_DEPTH_BUFFER_BIT | ...) in the presence of MRTs. Need to figure out what's going wrong exactly, but this is a much smaller haystack! Created attachment 57264 [details] [review] patch to fix the hang, not otherwise tested The attached patch fixes the GPU hangs in OilRush; I can now play the game. I haven't done a Piglit run on this, nor have I posted it for feedback yet. I'm not entirely sure it's sufficient; there are probably other bugs lurking here. I'll need to write some MRT test cases. That said, I figured I'd post it early so you can play with it. (In reply to comment #4) > That said, I figured I'd post it early so you can play with it. Hi Kenneth, Thanks for the patch. I did test it, game starts, I don't get GPU hung error, but I see the following errors on the console: GLFrameBuffer::enable(): incomplete attachment GLFrameBuffer::enable(): incomplete attachment GLFrameBuffer::enable(): incomplete attachment GLFrameBuffer::enable(): incomplete attachment GLFrameBuffer::enable(): incomplete attachment GLFrameBuffer::enable(): incomplete attachment GLFrameBuffer::enable(): incomplete attachment GLFrameBuffer::enable(): incomplete attachment OpenGL error: invalid value GLFrameBuffer::enable(): incomplete attachment GLFrameBuffer::enable(): incomplete attachment GLFrameBuffer::enable(): incomplete attachment GLFrameBuffer::enable(): incomplete attachment GLFrameBuffer::enable(): incomplete attachment GLFrameBuffer::enable(): incomplete attachment GLFrameBuffer::enable(): incomplete attachment GLFrameBuffer::enable(): incomplete attachment OpenGL error: invalid framebuffer operation GLFrameBuffer::enable(): incomplete attachment etc... Moreover, as I mentioned earlier during our IRC talk, game is very slow, both with and without the patch. But I don't know if it's hardware or driver the bottleneck. I did few missions, but it seems responsiveness is the key requirement to finish more difficult missions, so it's not really playable yet, but at least does not hung gpu now. Thanks. Created attachment 57344 [details]
Same hung but now in other game
Oh.. now strange things are happening in RegnumOnline, and I got this error while playing Regnum.
drm:i915_hangcheck_elapsed] *ERROR* Hangcheck timer elapsed... GPU hung
[drm] capturing error event; look for more information in /debug/dri/0/i915_error_state
[drm:i915_wait_request] *ERROR* i915_wait_request returns -11 (awaiting 2397072 at 2397053, next 2397074)
This happened while switching between fullscreen and window mode, and is not easily reproducible, just never happened before to me.
Let's keep one application per bug. The GPU hang in OilRush is fixed in master with: commit 172bb92db1a3c317867d9cfec6f15c09c37a0f6c Author: Kenneth Graunke <kenneth@whitecape.org> Date: Sat Feb 18 21:29:29 2012 -0800 i965: Only set Last Render Target Select on the last FB write. Fixes GPU hangs in OilRush, Trine, and Amnesia: The Dark Descent, which all use MRT (multiple render targets). NOTE: This is a candidate for release branches. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=38720 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=40059 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=45216 Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> I haven't seen the FBO incompleteness errors you're getting, but I haven't tried playing around with the detail settings yet. I'll take a look at that. Oh, one thing worth checking: are you building Mesa with --enable-texture-float? And do you have libtxc_dxtn installed? No if --enable-texture-float wasnt by default enabled, then I dont build with it. Yes I have libtxc_dxtn installed, otherwise RegnumOnline wont start, and will complain that my driver is not supported. Hang fix cherry-picked to the 8.0 branch: commit 16cc79f975816c0741711560be48fc498d4b4794 Author: Kenneth Graunke <kenneth@whitecape.org> Date: Sat Feb 18 21:29:29 2012 -0800 i965: Only set Last Render Target Select on the last FB write. Fixes GPU hangs in OilRush, Trine, and Amnesia: The Dark Descent, which all use MRT (multiple render targets). Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=38720 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=40059 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=45216 Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> (cherry picked from commit 172bb92db1a3c317867d9cfec6f15c09c37a0f6c) Closing as OilRush is working. For FBO completeness errors, I believe you need to compile with --enable-texture-float. I believe Unigine is trying to use that regardless of whether the driver actually supports it, which sounds like a Unigine bug. But it does work if you have that enabled. |
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.