[Piglit] [PATCH V2] arb_fragment_coord_conventions: redeclaration consistency tests for linker

Steve Miller dervishx at gmail.com
Thu Aug 1 13:57:19 PDT 2013


Shader_runner tests for consistency of redeclaration rules for gl_FragCoord in GL 3.2. Tests fail because compiler does not support this feature at this time.

v2 commit : corrected error not typecasting fragcoord info to fragcolor
---
 ...laration-consistent-qualifiers-fail.shader_test | 50 ++++++++++++++++++++++
 ...-consistent-qualifiers-nothing-pass.shader_test | 50 ++++++++++++++++++++++
 ...laration-consistent-qualifiers-pass.shader_test | 50 ++++++++++++++++++++++
 3 files changed, 150 insertions(+)
 create mode 100644 tests/spec/arb_fragment_coord_conventions/linker/redeclaration-consistent-qualifiers-fail.shader_test
 create mode 100644 tests/spec/arb_fragment_coord_conventions/linker/redeclaration-consistent-qualifiers-nothing-pass.shader_test
 create mode 100644 tests/spec/arb_fragment_coord_conventions/linker/redeclaration-consistent-qualifiers-pass.shader_test

diff --git a/tests/spec/arb_fragment_coord_conventions/linker/redeclaration-consistent-qualifiers-fail.shader_test b/tests/spec/arb_fragment_coord_conventions/linker/redeclaration-consistent-qualifiers-fail.shader_test
new file mode 100644
index 0000000..c0caada
--- /dev/null
+++ b/tests/spec/arb_fragment_coord_conventions/linker/redeclaration-consistent-qualifiers-fail.shader_test
@@ -0,0 +1,50 @@
+/* Test case multiple FS in program:
+*   Test that gl_FragCoord redeclaration must be consistent across shaders
+*   in program.
+*
+* Section 4.3.8.1 (Input Layout Qualifiers) of GLSL 1.50 spec says:
+*  If gl_FragCoord is redeclared in any fragment shader in a program, it must
+*  be redeclared in all the fragment shaders in that program that have a static
+*  use gl_FragCoord. All redeclarations of gl_FragCoord in all fragment shaders
+*  in a single program must have the same set of qualifiers.
+*
+* This test is part of a series ensuring linker success/failure
+* under various combinations of gl_FragCoord redeclaration.
+*/
+
+[require]
+GLSL >= 1.50
+
+[fragment shader]
+#version 150
+
+layout(origin_upper_left) in vec4 gl_FragCoord;
+
+void main() {
+     gl_FragColor = vec4 (gl_FragCoord.x, gl_FragCoord.y,
+     		    gl_FragCoord.z, gl_FragCoord.w);
+}
+
+[fragment shader]
+#version 150
+
+layout(pixel_center_integer) in vec4 gl_FragCoord;
+
+void main() {
+     gl_FragColor = vec4 (gl_FragCoord.x, gl_FragCoord.y,
+     		    gl_FragCoord.z, gl_FragCoord.w);
+}
+
+[fragment shader]
+#version 150
+
+layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord;
+
+void main() {
+     gl_FragColor = vec4 (gl_FragCoord.x, gl_FragCoord.y,
+     		    gl_FragCoord.z, gl_FragCoord.w);
+}
+
+
+[test]
+link error
\ No newline at end of file
diff --git a/tests/spec/arb_fragment_coord_conventions/linker/redeclaration-consistent-qualifiers-nothing-pass.shader_test b/tests/spec/arb_fragment_coord_conventions/linker/redeclaration-consistent-qualifiers-nothing-pass.shader_test
new file mode 100644
index 0000000..6130aeb
--- /dev/null
+++ b/tests/spec/arb_fragment_coord_conventions/linker/redeclaration-consistent-qualifiers-nothing-pass.shader_test
@@ -0,0 +1,50 @@
+/* Test case multiple FS in program:
+*   Test that gl_FragCoord redeclaration must be consistent across shaders
+*   in program.
+*
+* Section 4.3.8.1 (Input Layout Qualifiers) of GLSL 1.50 spec says:
+*  If gl_FragCoord is redeclared in any fragment shader in a program, it must
+*  be redeclared in all the fragment shaders in that program that have a static
+*  use gl_FragCoord. All redeclarations of gl_FragCoord in all fragment shaders
+*  in a single program must have the same set of qualifiers.
+*
+* This test is part of a series ensuring linker success/failure
+* under various combinations of gl_FragCoord redeclaration.
+*/
+
+[require]
+GLSL >= 1.50
+
+[fragment shader]
+#version 150
+
+in vec4 gl_FragCoord;
+
+void main() {
+     gl_FragColor = vec4 (gl_FragCoord.x, gl_FragCoord.y,
+     		    gl_FragCoord.z, gl_FragCoord.w);
+}
+
+[fragment shader]
+#version 150
+
+in vec4 gl_FragCoord;
+
+void main() {
+     gl_FragColor = vec4 (gl_FragCoord.x, gl_FragCoord.y,
+     		    gl_FragCoord.z, gl_FragCoord.w);
+}
+
+[fragment shader]
+#version 150
+
+in vec4 gl_FragCoord;
+
+void main() {
+     gl_FragColor = vec4 (gl_FragCoord.x, gl_FragCoord.y,
+     		    gl_FragCoord.z, gl_FragCoord.w);
+}
+
+
+[test]
+link error
\ No newline at end of file
diff --git a/tests/spec/arb_fragment_coord_conventions/linker/redeclaration-consistent-qualifiers-pass.shader_test b/tests/spec/arb_fragment_coord_conventions/linker/redeclaration-consistent-qualifiers-pass.shader_test
new file mode 100644
index 0000000..8a5aeea
--- /dev/null
+++ b/tests/spec/arb_fragment_coord_conventions/linker/redeclaration-consistent-qualifiers-pass.shader_test
@@ -0,0 +1,50 @@
+/* Test case multiple FS in program:
+*   Test that gl_FragCoord redeclaration must be consistent across shaders
+*   in program.
+*
+* Section 4.3.8.1 (Input Layout Qualifiers) of GLSL 1.50 spec says:
+*  If gl_FragCoord is redeclared in any fragment shader in a program, it must
+*  be redeclared in all the fragment shaders in that program that have a static
+*  use gl_FragCoord. All redeclarations of gl_FragCoord in all fragment shaders
+*  in a single program must have the same set of qualifiers.
+*
+* This test is part of a series ensuring linker success/failure
+* under various combinations of gl_FragCoord redeclaration.
+*/
+
+[require]
+GLSL >= 1.50
+
+[fragment shader]
+#version 150
+
+layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord;
+
+void main() {
+     gl_FragColor = vec4 (gl_FragCoord.x, gl_FragCoord.y,
+     		    gl_FragCoord.z, gl_FragCoord.w);
+}
+
+[fragment shader]
+#version 150
+
+layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord;
+
+void main() {
+     gl_FragColor =vec4 (gl_FragCoord.x, gl_FragCoord.y,
+     		    gl_FragCoord.z, gl_FragCoord.w);
+}
+
+[fragment shader]
+#version 150
+
+layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord;
+
+void main() {
+     gl_FragColor = vec4 (gl_FragCoord.x, gl_FragCoord.y,
+     		    gl_FragCoord.z, gl_FragCoord.w);
+}
+
+
+[test]
+link error
\ No newline at end of file
-- 
1.8.3.1



More information about the Piglit mailing list