Bug 93317

Summary: [SKL,BDW,HSW][GLES 3.1 CTS] ES31-CTS.shader_atomic_counters.advanced-usage-many-draw-calls2
Product: Mesa Reporter: Marta Löfstedt <marta.lofstedt>
Component: Drivers/DRI/i965Assignee: Tapani Pälli <lemody>
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    

Description Marta Löfstedt 2015-12-10 11:59:53 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.shader_atomic_counters.advanced-usage-many-draw-calls2

Environment:
Mesa built with: --enable-debug
export MESA_GLES_VERSION_OVERRIDE=3.1
export MESA_EXTENSION_OVERRIDE=GL_ARB_compute_shader
-----------------------------------------
Reason for fail:
data[0] is 65535, should be 0...
Comment 1 Tapani Pälli 2015-12-11 06:09:24 UTC
I've made a Piglit test to reproduce the issues I seen with this. This Piglit commit is related:

abc8b4f2068725411c60afaf7707b37610f35c27

I fixed this test to pass with this Mesa commit:

231db5869c2c0f32608f39100bffff569da21bea

I believe this fixes 'part' of the failures in this test. The missing bit is still propagating the atomic counter changes to ssbo unsized array. I will get back to this after investigating some other issues.
Comment 2 Tapani Pälli 2015-12-22 08:57:24 UTC
I've isolated the problem being _mesa_active_fragment_shader_has_atomic_ops using Shader instead of _Shader and asked Iago/Samuel to fix this as they are touching same function when fixing SSBO issues.
Comment 3 Tapani Pälli 2015-12-22 12:38:20 UTC
commit 1a95b87dad341e73e355b244a275d9b4d60537af
Author: Iago Toral Quiroga <itoral@igalia.com>
Date:   Fri Dec 18 10:17:59 2015 +0100

    mesa: Add a _mesa_active_fragment_shader_has_side_effects helper
    
    Some drivers can disable the FS unit if there is nothing in the shader code
    that writes to an output (i.e. color, depth, etc). Right now, mesa has
    a function to check for atomic buffers and the i965 driver also checks for
    images. Refactor this logic into a generic function that we can use for
    any source of side effects in a fragment shader. Suggested by Jason.
    
    v2:
    - Use '_Shader', as suggested by Tapani, to fix the following CTS test:
    
    ES31-CTS.shader_atomic_counters.advanced-usage-many-draw-calls2
    
    Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Comment 4 Marta Löfstedt 2015-12-29 11:42:07 UTC
I can reproduce this issue with mesa git@dfce9759.
Comment 5 Marta Löfstedt 2015-12-29 12:31:41 UTC
What I meant to write is that I CAN NOT reproduce this issue with mesa git@dfce9759. I.e. I confirm that this is 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.