Bug 93320

Summary: [HSW,BDW,SKL][GLES 3.1 CTS] ES31-CTS.vertex_attrib_binding.advanced-bindingUpdate fail
Product: Mesa Reporter: Marta Löfstedt <marta.lofstedt>
Component: Drivers/DRI/i965Assignee: Samuel Iglesias Gonsálvez <siglesias>
Status: RESOLVED FIXED QA Contact: Intel 3D Bugs Mailing List <intel-3d-bugs>
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Bug Depends on:    
Bug Blocks: 92778, 93319    

Description Marta Löfstedt 2015-12-10 12:14:57 UTC
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
-----------------
Software versions:
    4.3.0-rc3+
    OpenGL version string: 3.0 Mesa 11.2.0-devel (git-83e8e07)

GPU hardware:
    OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 5300 (Broadwell GT2) 
    00:02.0 VGA compatible controller [0300]: Intel Corporation Broadwell-U Integrated Graphics [8086:161e] (rev 06)

CPU hardware:
    x86_64
    Genuine Intel(R) CPU 0000 @ 0.60GHz
------------------
Software versions:
    4.2.0-1-generic
    OpenGL version string: 3.0 Mesa 11.2.0-devel (git-83e8e07)

GPU hardware:
    OpenGL renderer string: Mesa DRI Intel(R) Haswell Desktop 
    00:02.0 VGA compatible controller [0300]: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller [8086:0412] (rev 06)

CPU hardware:
    x86_64
    Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz
-----------------
CTS version:
git@67ae88f31295

command: 
./glcts --deqp-case=ES31-CTS.sepshaderobjs.StateInteraction

Environment:
Mesa built with: --enable-debug
export MESA_GLES_VERSION_OVERRIDE=3.1
export MESA_EXTENSION_OVERRIDE=GL_ARB_compute_shader
----------------
Reason for fail:
Incorrect framebuffer color at pixel (0 0). Color is (1.000000 1.000000 1.000000). Color should be (0.000000 1.000000 0.000000)
Comment 1 Marta Löfstedt 2015-12-10 16:39:16 UTC
Values set by vert attrib is compared to values set by ProgramUniform. If they don't match (1,1,1,1) is set to out color. 
The programuniform values appear to be correct, but the vert attrib values are not correct. They are correct in the vertex shader, but in the fragshader the values are offset. For example in vs:

layout(location = 3) in uvec3 vs_in_data0;
layout(location = 4) in ivec2 vs_in_data1
flat out uvec3 data0;
flat out ivec2 data1;

here value are correct. However in fs:

flat in uvec3 data0;
flat in ivec2 data1

data0 is offset such that data0' = {data0.y, data0.z, data1.x}
Comment 2 Marta Löfstedt 2016-01-05 14:35:15 UTC
Also, note that we get:

"Mesa: User error: GL_INVALID_OPERATION in glValidateProgramPipeline failed to validate the pipeline"

, since inputs != outputs in:
"static bool
validate_io(const struct gl_shader *producer,
            const struct gl_shader *consumer, bool isES)" in shader_query.cpp
Comment 3 Marta Löfstedt 2016-01-14 11:58:41 UTC
With Samuel patch: http://patchwork.freedesktop.org/patch/70474/
on top of mesa git@f4ab7340ca
The:
ES31-CTS.vertex_attrib_binding.advanced-bindingUpdate

will pass.
Comment 4 Samuel Iglesias Gonsálvez 2016-01-15 06:13:53 UTC
Pushed to master as commit 781d2787bc1cf975757a95d0d9324f734fa61c09

I am marking this bug as 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.