Bug 110440

Summary: [REGRESSION] [BISECTED] [OpenGL CTS] dEQP-GLES2.functional.uniform_api.random.3
Product: Mesa Reporter: Andrés Gómez García <agomez>
Component: glsl-compilerAssignee: mesa-dev
Status: RESOLVED FIXED QA Contact: Intel 3D Bugs Mailing List <intel-3d-bugs>
Severity: normal    
Priority: medium CC: kenneth
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Andrés Gómez García 2019-04-15 15:12:55 UTC
After:

--

commit 9e0c744f07a21fc7bb018a77cf83b057436d0d1b
Author: Kenneth Graunke <kenneth@whitecape.org>
Date:   Thu Apr 11 07:04:58 2019 -0700

    glsl: Set location on structure-split sampler uniform variables
    
    gl_nir_lower_samplers_as_deref splits structure uniform variables,
    creating new variables for individual fields.  As part of that, it
    calculates a new location.  It then never set this on the new variables.
    
    Thanks to Michael Fiano for finding this bug.  Fixes crashes on i965
    with Piglit's new tests/spec/glsl-1.10/execution/samplers/uniform-struct
    test, which was reduced from the failing case in Michael's app.
    
    Fixes: f003859f97c nir: Make gl_nir_lower_samplers use gl_nir_lower_samplers_as_deref
    Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>

--

dEQP-GLES2.functional.uniform_api.random.3 fails:

--

./glcts --deqp-case=dEQP-GLES2.functional.uniform_api.random.3
Writing test log into TestResults.qpa
dEQP Core git-4207a2ba566fad7d8233c96a17d0ce9eed119aa3 (0x4207a2ba) starting..
  target implementation = 'Wayland'
ATTENTION: default value of option vblank_mode overridden by environment.

Test case 'dEQP-GLES2.functional.uniform_api.random.3'..
  Fail (Failed)

DONE!

Test run totals:
 Passed:        0/1 (0.0%)
  Failed:        1/1 (100.0%)
  Not supported: 0/1 (0.0%)
  Warnings:      0/1 (0.0%)

--

Found with VK-GL-CTS compiled for Wayland target, but confirmed also with the X11_EGL target. Also, failing, at least, in KBL, SKL, BDW and HSW.
Comment 1 Mark Janes 2019-04-15 17:47:26 UTC
FWIW, this test is not in the dEQP mustpass list.
Comment 2 Andrés Gómez García 2019-04-17 09:32:39 UTC
(In reply to Mark Janes from comment #1)
> FWIW, this test is not in the dEQP mustpass list.

It is. I found this regression running:

$ ./cts-runner --type=es32


On the "opengl-es-cts-3.2.5" branch.


Check:

https://raw.githubusercontent.com/KhronosGroup/VK-GL-CTS/opengl-es-cts-3.2.5/external/openglcts/data/mustpass/gles/aosp_mustpass/3.2.5.x/gles2-master.txt
Comment 3 Tapani Pälli 2019-04-18 06:59:28 UTC
This is possibly related to sampler arrays inside a struct? There are 4 locations set (by the referred change) during this test and 3 of those are sampler arrays. Not sure what could be going wrong there though :/
Comment 5 Tapani Pälli 2019-04-23 06:18:50 UTC
Verified that this got fixed with 47303b466c1 and 6981069fc80 did not regress it, passes fine on master.

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.