Bug 93312

Summary: [SKL][GLES 3.1 CTS] ES31-CTS.layout_binding* GPU_HANG
Product: Mesa Reporter: Marta Löfstedt <marta.lofstedt>
Component: Drivers/DRI/i965Assignee: Jordan Justen <jljusten>
Status: RESOLVED DUPLICATE QA Contact: Intel 3D Bugs Mailing List <intel-3d-bugs>
Severity: major    
Priority: high CC: jason
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Bug Depends on: 92589    
Bug Blocks: 92778    
Attachments: error state
dmesg after hang

Description Marta Löfstedt 2015-12-10 11:09:27 UTC
Created attachment 120448 [details]
error state

Software versions:
    4.4.0-040400rc4-generic
    OpenGL version string: 3.0 Mesa 11.2.0-devel (git-83e8e07)

GPU hardware:
    OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 530 (Skylake GT2) 
    00:02.0 VGA compatible controller [0300]: Intel Corporation Sky Lake Integrated Graphics [8086:1912] (rev 06)

CPU hardware:
    x86_64
    Intel(R) Core(TM) i5-6600K CPU @ 3.50GHz

CTS version:
git@67ae88f31295

command: 
./glcts --deqp-case=ES31-CTS.layout_binding*

Environment:
Ubuntu 15.10
Mesa built with: --enable-debug
export MESA_GLES_VERSION_OVERRIDE=3.1
export MESA_EXTENSION_OVERRIDE=GL_ARB_compute_shader

------------------------------------------------------
When running all the layout_binding tests of the OpenGL ES 3.1 CTS, execution stops after 3 or 4 test with:
"intel_do_flush_locked failed: Input/output error"
Comment 1 Marta Löfstedt 2015-12-10 11:10:01 UTC
Created attachment 120449 [details]
dmesg after hang
Comment 2 Marta Löfstedt 2015-12-10 11:32:47 UTC
If ARB_compute_shader are not override enabled, the hang is not reproducible.
Comment 3 Marta Löfstedt 2016-01-11 08:00:41 UTC
To clarify above comment. The hang is related to compute shader funktionality. It has nothing to do with how compute shaders are enabled.
Comment 4 Kenneth Graunke 2016-01-11 08:14:49 UTC
I wonder if this is related to the GPU hang that Jason found a while back, where out of bounds values in an array (of say, samplers or images) can cause us to access an invalid surface...or a surface with a message that's invalid for that surface (i.e. try to use the sampler on a RAW surface).

Cc'ing Jason in case.
Comment 5 Marta Löfstedt 2016-01-11 10:06:43 UTC
I am not sure, but maybe BUG 93407 is related to this. It is a SKL only failing test: ES31-CTS.compute_shader.resources-texture
Comment 6 Jason Ekstrand 2016-01-11 17:29:30 UTC
(In reply to Kenneth Graunke from comment #4)
> I wonder if this is related to the GPU hang that Jason found a while back,
> where out of bounds values in an array (of say, samplers or images) can
> cause us to access an invalid surface...or a surface with a message that's
> invalid for that surface (i.e. try to use the sampler on a RAW surface).

Going off nothing but the test name and bug report, I think that's likely.

(In reply to Marta Löfstedt from comment #5)
> I am not sure, but maybe BUG 93407 is related to this. It is a SKL only
> failing test: ES31-CTS.compute_shader.resources-texture

Again, I haven't actually looked at the test, but based on names, that seems like a reasonable guess.

If it is the bug Ken is referring to above, then it comes from doing an out-of-bounds array access on an array of textures or buffers.  We need to add some code to the glsl compiler that clamps array indices for arrays of external resources to range [0, size).
Comment 7 Marta Löfstedt 2016-01-14 15:29:52 UTC
I ran through all layout binding cases one by one.
It is only:
./glcts --deqp-case=ES31-CTS.layout_binding.sampler2D_layout_binding_texture_ComputeShader 
and:
./glcts --deqp-case=ES31-CTS.layout_binding.sampler2DArray_layout_binding_texture_ComputeShader

that cause GPU HANG. All other layout binding tests actually pass.
Comment 8 Marta Löfstedt 2016-01-18 11:33:24 UTC
I can not reproduce this issue with Mesa: git@ad20be1f30ef5 and Curros patch from BUG 92589.
Comment 9 Marta Löfstedt 2016-01-18 11:57:13 UTC

*** This bug has been marked as a duplicate of bug 92589 ***

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.