GLSL ES 1.0 linker tests glsl-fface-invariant, glsl-fcoord-invariant and glsl-pcoord-invariant have to fail as specified in spec:
4.6.4 Invariance and Linkage
The invariance of varyings that are declared in both the vertex and fragment shaders must match.For the built-in special variables, gl_FragCoord can only be declared invariant if and only if gl_Position is declared invariant. Similarly gl_PointCoord can only be declared invariant if and only if gl_PointSize is
declared invariant. It is an error to declare gl_FrontFacing as invariant. The invariance of gl_FrontFacing is the same as the invariance of gl_Position.
Seems a bit like : https://patchwork.freedesktop.org/patch/36417/
IIRC there was some issue with that patch ... or not. Vadym, please check if this fixes the WebGL tests also?
Yep, looks like patches are almost the same. I didn't expected that some patches can be on review since 2014 :)
I checked following WebGL tests which are related to invariance:
1) conformance/glsl/bugs/global-invariant-does-not-leak-across-shaders.html (Passed: 3/3 in 100.0 ms)
2) conformance/glsl/bugs/invariant-does-not-leak-across-shaders.html (Passed: 3/3 in 84.0 ms)
3) conformance/glsl/misc/fragcolor-fragdata-invariant.html (Passed: 1/2 Failed: 1/2 in 98.0 ms)
failed: [unexpected fragment shader compile status] (expected: true) Declaring both gl_FragColor and gl_FragData invariant should succeed.
4) conformance/glsl/misc/shaders-with-invariance.html (Passed: 19/19 in 116.0 ms)
5) deqp/functional/gles3/shaderbuiltinvar.html (Passed: 27/31 Failed: 4/31 in 944.0 ms)
failed: builtin_variable.max_vertex_output_vectors_vertex: Invalid builtin constant value
failed: builtin_variable.max_vertex_output_vectors_fragment: Invalid builtin constant value
failed: builtin_variable.max_fragment_input_vectors_vertex: Invalid builtin constant value
failed: builtin_variable.max_fragment_input_vectors_fragment: Invalid builtin constant value
6) conformance2/glsl3/invalid-invariant.html (Passed: 3/3 in 82.0 ms)
7) conformance2/glsl3/valid-invariant.html (Passed: 4/4 in 92.0 ms)
and got the same results without and with the patch. So looks like this change doesn't affect WebGL.
--- 8< ---
Author: Vadym Shovkoplias <firstname.lastname@example.org>
Date: Fri Sep 7 15:14:52 2018 +0300
glsl/linker: Check the invariance of built-in special variables
Following shader tests are fixed now:
I think those tests can be moved from [expected-failures] to [fixed-tests] in mesa CI.