Bug 65324 - [IVB/HSW Bisected]Webgl conformance/textures/texture-size.html causes GPU hung
Summary: [IVB/HSW Bisected]Webgl conformance/textures/texture-size.html causes GPU hung
Status: VERIFIED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/DRI/i965 (show other bugs)
Version: git
Hardware: All Linux (All)
: high major
Assignee: Jordan Justen
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-06-04 02:52 UTC by lu hua
Modified: 2013-06-20 06:33 UTC (History)
5 users (show)

See Also:
i915 platform:
i915 features:


Attachments
dmesg (10.74 KB, text/plain)
2013-06-04 02:52 UTC, lu hua
Details
i915_error_state (419.37 KB, application/gzip)
2013-06-04 03:00 UTC, lu hua
Details

Description lu hua 2013-06-04 02:52:30 UTC
Created attachment 80258 [details]
dmesg

System Environment:
--------------------------
Arch:           x86_64
Platform:       Haswell
Libdrm:		(master)libdrm-2.4.45-4-g8a88e349975a64676f143183e835e6d296f29627
Mesa:		(master)c754f7a8fd53906acb9ef6ade715481a2c9f17de
Xserver:		(master)xorg-server-1.14.99.1-119-gc21344add2fc589df83b29be5831c36a372201bd
Xf86_video_intel:		(master)2.21.8-17-g66ad4d6f3c990bd40d816b4a22122bbf64786e4c
Cairo:		(master)41bef0fc385381b8c6b9091ec7ca2abe04cfc147
Libva:		(staging)ef53340b19746589079d7ed5f9c67970fcc40401
Libva_intel_driver:(staging)9c698455fec340ced7dbf93cc5be004bb4a1eb22
Kernel:	(drm-intel-nightly) 6d8ab2cbfc88b20db12b77a5fe1d77a7e8b4e89a

Bug detailed description:
-------------------------
It causes GPU hung on Haswell with mesa master branch. It doesn't happen on 9.1 branch.
Bisect shows:c754f7a8fd53906acb9ef6ade715481a2c9f17de is the first bad commit
commit c754f7a8fd53906acb9ef6ade715481a2c9f17de
Author:     Jordan Justen <jordan.l.justen@intel.com>
AuthorDate: Fri Apr 19 01:13:31 2013 -0700
Commit:     Jordan Justen <jordan.l.justen@intel.com>
CommitDate: Sun Jun 2 20:39:38 2013 -0700

    i965 gen7: use SURFACE_STATE fields to select render level/layer

    Rather than pointing the surface_state directly at a single
    sub-image of the texture for rendering, we now point the
    surface_state at the top level of the texture, and configure
    the surface_state as needed based on this.

    Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
    Reviewed-by: Eric Anholt <eric@anholt.net>

Reproduce steps:
----------------
1. xinit
2. gnome-session
3. https://www.khronos.org/registry/webgl/conformance-suites/1.0.2/webgl-conformance-tests.html run conformance/textures/texture-size.html
Comment 1 lu hua 2013-06-04 03:00:25 UTC
Created attachment 80259 [details]
i915_error_state
Comment 2 Jordan Justen 2013-06-06 06:22:20 UTC
Reproduced on Ivy Bridge.
Comment 3 Eric Anholt 2013-06-06 06:41:44 UTC
If you add an assert(irb->mt->first_level == 0) to gen7_update_renderbuffer_surface, does it ever get triggered?  I think we may need to be adjusting some programming of levels in the != 0 case.
Comment 4 Gordon Jin 2013-06-09 02:46:45 UTC
(playing the trick in title so this will be excluded from HSW specific bug query)
Comment 5 Jordan Justen 2013-06-14 23:21:45 UTC
(In reply to comment #3)
> If you add an assert(irb->mt->first_level == 0) to
> gen7_update_renderbuffer_surface, does it ever get triggered?  I think we
> may need to be adjusting some programming of levels in the != 0 case.

Thanks for the suggestion. This assert does appear to
be triggered by the webgl test.

But, the assert does not cause any regressions in piglit.

Unfortunately, I don't know how to debug the webgl test
to figure out what code path it is following.

Anyone have some ideas of what to look for, or how to debug
the webgl test? I'll keep working on it to see if I can
discover anything else about the issue.
Comment 6 Kenneth Graunke 2013-06-17 05:43:07 UTC
Well, you can "View Source" the page to get the source code for the test.  Or check it out from Khronos SVN.  It's in JavaScript, but quite readable.  It's also apparently MIT licensed.

Or, you can gdb firefox, just like anything else.  Or you can apitrace firefox and then just replay it and use your normal tools.
Comment 7 Jordan Justen 2013-06-17 21:03:31 UTC
(In reply to comment #6)
> Or, you can gdb firefox, just like anything else.

Thanks. gdb actually works for debugging this with firefox.

Previously I tried debugging with chrome...
Comment 8 Jordan Justen 2013-06-18 21:19:01 UTC
Should be resolved in adeda5af
Comment 9 lu hua 2013-06-20 06:33:19 UTC
Verified.Fixed.


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.