From: Ian Romanick <ian.d.roman...@intel.com> glslangValidator rejects all of the shaders that try to change the qualifier with errors like:
ERROR: 0:8: 'redeclaration' : cannot change qualification of gl_ClipDistance Mesa currently allows all of them to compile. Closed-source drivers have not been tested. glslangValidator rejects the shaders that try to change the type with: ERROR: 0:8: 'gl_ClipDistance' : redeclaration of array with a different element type Mesa currently rejects these with a somewhat less helpful error message. Closed-source drivers have not been tested. NOTE: The lone .vert test is here because vertex shader array input were added in GLSL 1.50. Signed-off-by: Ian Romanick <ian.d.roman...@intel.com> Cc: Andrii Simiklit <andrii.simik...@globallogic.com> --- .../redeclarations/gl_ClipDistance-as-global.geom | 17 +++++++++++++++++ .../compiler/redeclarations/gl_ClipDistance-as-in.geom | 17 +++++++++++++++++ .../compiler/redeclarations/gl_ClipDistance-as-in.vert | 13 +++++++++++++ .../redeclarations/gl_ClipDistance-as-out-vec2.geom | 17 +++++++++++++++++ .../compiler/redeclarations/gl_ClipDistance-as-out.geom | 17 +++++++++++++++++ .../redeclarations/gl_ClipDistance-as-uniform.geom | 17 +++++++++++++++++ 6 files changed, 98 insertions(+) create mode 100644 tests/spec/glsl-1.50/compiler/redeclarations/gl_ClipDistance-as-global.geom create mode 100644 tests/spec/glsl-1.50/compiler/redeclarations/gl_ClipDistance-as-in.geom create mode 100644 tests/spec/glsl-1.50/compiler/redeclarations/gl_ClipDistance-as-in.vert create mode 100644 tests/spec/glsl-1.50/compiler/redeclarations/gl_ClipDistance-as-out-vec2.geom create mode 100644 tests/spec/glsl-1.50/compiler/redeclarations/gl_ClipDistance-as-out.geom create mode 100644 tests/spec/glsl-1.50/compiler/redeclarations/gl_ClipDistance-as-uniform.geom diff --git a/tests/spec/glsl-1.50/compiler/redeclarations/gl_ClipDistance-as-global.geom b/tests/spec/glsl-1.50/compiler/redeclarations/gl_ClipDistance-as-global.geom new file mode 100644 index 000000000..27fb48b7b --- /dev/null +++ b/tests/spec/glsl-1.50/compiler/redeclarations/gl_ClipDistance-as-global.geom @@ -0,0 +1,17 @@ +/* [config] + * expect_result: fail + * glsl_version: 1.50 + * [end config] + */ +#version 150 + +layout(points) in; +layout(points, max_vertices = 1) out; + +float gl_ClipDistance[2]; + +void main() +{ + gl_Position = vec4(0); + EmitVertex(); +} diff --git a/tests/spec/glsl-1.50/compiler/redeclarations/gl_ClipDistance-as-in.geom b/tests/spec/glsl-1.50/compiler/redeclarations/gl_ClipDistance-as-in.geom new file mode 100644 index 000000000..abbb9551c --- /dev/null +++ b/tests/spec/glsl-1.50/compiler/redeclarations/gl_ClipDistance-as-in.geom @@ -0,0 +1,17 @@ +/* [config] + * expect_result: fail + * glsl_version: 1.50 + * [end config] + */ +#version 150 + +layout(points) in; +layout(points, max_vertices = 1) out; + +in float gl_ClipDistance[2]; + +void main() +{ + gl_Position = vec4(0); + EmitVertex(); +} diff --git a/tests/spec/glsl-1.50/compiler/redeclarations/gl_ClipDistance-as-in.vert b/tests/spec/glsl-1.50/compiler/redeclarations/gl_ClipDistance-as-in.vert new file mode 100644 index 000000000..a2b671d28 --- /dev/null +++ b/tests/spec/glsl-1.50/compiler/redeclarations/gl_ClipDistance-as-in.vert @@ -0,0 +1,13 @@ +/* [config] + * expect_result: fail + * glsl_version: 1.50 + * [end config] + */ +#version 150 + +in float gl_ClipDistance[2]; + +void main() +{ + gl_Position = gl_Vertex; +} diff --git a/tests/spec/glsl-1.50/compiler/redeclarations/gl_ClipDistance-as-out-vec2.geom b/tests/spec/glsl-1.50/compiler/redeclarations/gl_ClipDistance-as-out-vec2.geom new file mode 100644 index 000000000..680d44d4d --- /dev/null +++ b/tests/spec/glsl-1.50/compiler/redeclarations/gl_ClipDistance-as-out-vec2.geom @@ -0,0 +1,17 @@ +/* [config] + * expect_result: fail + * glsl_version: 1.50 + * [end config] + */ +#version 150 + +layout(points) in; +layout(points, max_vertices = 1) out; + +out vec2 gl_ClipDistance[2]; + +void main() +{ + gl_Position = vec4(0); + EmitVertex(); +} diff --git a/tests/spec/glsl-1.50/compiler/redeclarations/gl_ClipDistance-as-out.geom b/tests/spec/glsl-1.50/compiler/redeclarations/gl_ClipDistance-as-out.geom new file mode 100644 index 000000000..54e3ccc2f --- /dev/null +++ b/tests/spec/glsl-1.50/compiler/redeclarations/gl_ClipDistance-as-out.geom @@ -0,0 +1,17 @@ +/* [config] + * expect_result: pass + * glsl_version: 1.50 + * [end config] + */ +#version 150 + +layout(points) in; +layout(points, max_vertices = 1) out; + +out float gl_ClipDistance[2]; + +void main() +{ + gl_Position = vec4(0); + EmitVertex(); +} diff --git a/tests/spec/glsl-1.50/compiler/redeclarations/gl_ClipDistance-as-uniform.geom b/tests/spec/glsl-1.50/compiler/redeclarations/gl_ClipDistance-as-uniform.geom new file mode 100644 index 000000000..e0c550edd --- /dev/null +++ b/tests/spec/glsl-1.50/compiler/redeclarations/gl_ClipDistance-as-uniform.geom @@ -0,0 +1,17 @@ +/* [config] + * expect_result: fail + * glsl_version: 1.50 + * [end config] + */ +#version 150 + +layout(points) in; +layout(points, max_vertices = 1) out; + +uniform float gl_ClipDistance[2]; + +void main() +{ + gl_Position = vec4(0); + EmitVertex(); +} -- 2.14.4 _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/piglit