[Piglit] [PATCH] arb_fragment_coord_conventions compiler/parser
Steve Miller
dervishx at gmail.com
Thu Aug 1 13:37:10 PDT 2013
Tests for layout qualifiers and redeclaration of gl_FragCoord. Tests fail at this time due to compiler not supporting 3.2 FS input redeclarations.
v2 commit : typecast data to fragcolor as vec4 (was error in original)
---
.../basic-qualifiers-both-origin-and-pixel.frag | 26 ++++++++++++++++++++
.../compiler/basic-qualifiers-layout-illegal.frag | 28 ++++++++++++++++++++++
.../compiler/basic-qualifiers-nothing.frag | 24 +++++++++++++++++++
.../compiler/basic-qualifiers-origin.frag | 25 +++++++++++++++++++
.../compiler/basic-qualifiers-pixel-center.frag | 25 +++++++++++++++++++
.../compiler/redeclaration-after-use.frag | 22 +++++++++++++++++
.../compiler/redeclaration-outside-fs.vert | 26 ++++++++++++++++++++
7 files changed, 176 insertions(+)
create mode 100644 tests/spec/arb_fragment_coord_conventions/compiler/basic-qualifiers-both-origin-and-pixel.frag
create mode 100644 tests/spec/arb_fragment_coord_conventions/compiler/basic-qualifiers-layout-illegal.frag
create mode 100644 tests/spec/arb_fragment_coord_conventions/compiler/basic-qualifiers-nothing.frag
create mode 100644 tests/spec/arb_fragment_coord_conventions/compiler/basic-qualifiers-origin.frag
create mode 100644 tests/spec/arb_fragment_coord_conventions/compiler/basic-qualifiers-pixel-center.frag
create mode 100644 tests/spec/arb_fragment_coord_conventions/compiler/redeclaration-after-use.frag
create mode 100644 tests/spec/arb_fragment_coord_conventions/compiler/redeclaration-outside-fs.vert
diff --git a/tests/spec/arb_fragment_coord_conventions/compiler/basic-qualifiers-both-origin-and-pixel.frag b/tests/spec/arb_fragment_coord_conventions/compiler/basic-qualifiers-both-origin-and-pixel.frag
new file mode 100644
index 0000000..8632b64
--- /dev/null
+++ b/tests/spec/arb_fragment_coord_conventions/compiler/basic-qualifiers-both-origin-and-pixel.frag
@@ -0,0 +1,26 @@
+// [config]
+// expect result: pass
+// glsl_version: 1.50
+// check_link: false
+// [end config]
+/*
+* Section 4.3.8.1 (Input Layout Qualifiers) of the GLSL 1.50 spec says:
+* Fragment shaders can have an input layout only for redeclaring the
+* built-in variable gl_FragCoord (see section 7.2 Fragment Shader Special
+* Variables). The layout qualifier identifiers for gl_FragCoord are
+* layout-qualifier-id:
+* origin_upper_left
+* pixel_center_integer
+*
+*/
+
+#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.z);
+
+}
diff --git a/tests/spec/arb_fragment_coord_conventions/compiler/basic-qualifiers-layout-illegal.frag b/tests/spec/arb_fragment_coord_conventions/compiler/basic-qualifiers-layout-illegal.frag
new file mode 100644
index 0000000..70208f4
--- /dev/null
+++ b/tests/spec/arb_fragment_coord_conventions/compiler/basic-qualifiers-layout-illegal.frag
@@ -0,0 +1,28 @@
+// [config]
+// expect result: fail
+// glsl_version: 1.50
+// check_link: false
+// [end config]
+/*
+* Section 4.3.8.1 (Input Layout Qualifiers) of the GLSL 1.50 spec says:
+* Fragment shaders can have an input layout only for redeclaring the
+* built-in variable gl_FragCoord (see section 7.2 Fragment Shader Special
+* Variables). The layout qualifier identifiers for gl_FragCoord are
+* layout-qualifier-id:
+* origin_upper_left
+* pixel_center_integer
+*
+* Test should fail because input layout should only apply to gl_FragCoord.
+*/
+
+#version 150
+
+layout(origin_upper_left, pixel_center_integer) in vec2 gl_PointCoord;
+
+layout(origin_upper_left, pixel_center_integer) in bool gl_FrontFacing;
+
+void main() {
+
+ gl_FragColor = vec4 (gl_FragCoord.x, gl_FragCoord.y,
+ gl_FragCoord.z, gl_FragCoord.z);
+}
diff --git a/tests/spec/arb_fragment_coord_conventions/compiler/basic-qualifiers-nothing.frag b/tests/spec/arb_fragment_coord_conventions/compiler/basic-qualifiers-nothing.frag
new file mode 100644
index 0000000..9f6d8d5
--- /dev/null
+++ b/tests/spec/arb_fragment_coord_conventions/compiler/basic-qualifiers-nothing.frag
@@ -0,0 +1,24 @@
+// [config]
+// expect result: pass
+// glsl_version: 1.50
+// check_link: false
+// [end config]
+/*
+* Section 4.3.8.1 (Input Layout Qualifiers) of the GLSL 1.50 spec says:
+* Fragment shaders can have an input layout only for redeclaring the
+* built-in variable gl_FragCoord (see section 7.2 Fragment Shader Special
+* Variables).
+*
+* Redeclarations are done as follows
+* in vec4 gl_FragCoord; // redeclaration that changes nothing is allowed
+*/
+
+#version 150
+
+in vec4 gl_FragCoord;
+
+void main() {
+
+ gl_FragColor = vec4 (gl_FragCoord.x, gl_FragCoord.y,
+ gl_FragCoord.z, gl_FragCoord.z);
+}
diff --git a/tests/spec/arb_fragment_coord_conventions/compiler/basic-qualifiers-origin.frag b/tests/spec/arb_fragment_coord_conventions/compiler/basic-qualifiers-origin.frag
new file mode 100644
index 0000000..4787860
--- /dev/null
+++ b/tests/spec/arb_fragment_coord_conventions/compiler/basic-qualifiers-origin.frag
@@ -0,0 +1,25 @@
+// [config]
+// expect result: pass
+// glsl_version: 1.50
+// check_link: false
+// [end config]
+/*
+* Section 4.3.8.1 (Input Layout Qualifiers) of the GLSL 1.50 spec says:
+* Fragment shaders can have an input layout only for redeclaring the
+* built-in variable gl_FragCoord (see section 7.2 Fragment Shader Special
+* Variables). The layout qualifier identifiers for gl_FragCoord are
+* layout-qualifier-id:
+* origin_upper_left
+* pixel_center_integer
+*
+*/
+
+#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.z);
+}
diff --git a/tests/spec/arb_fragment_coord_conventions/compiler/basic-qualifiers-pixel-center.frag b/tests/spec/arb_fragment_coord_conventions/compiler/basic-qualifiers-pixel-center.frag
new file mode 100644
index 0000000..024de4f
--- /dev/null
+++ b/tests/spec/arb_fragment_coord_conventions/compiler/basic-qualifiers-pixel-center.frag
@@ -0,0 +1,25 @@
+// [config]
+// expect result: pass
+// glsl_version: 1.50
+// check_link: false
+// [end config]
+/*
+* Section 4.3.8.1 (Input Layout Qualifiers) of the GLSL 1.50 spec says:
+* Fragment shaders can have an input layout only for redeclaring the
+* built-in variable gl_FragCoord (see section 7.2 Fragment Shader Special
+* Variables). The layout qualifier identifiers for gl_FragCoord are
+* layout-qualifier-id:
+* origin_upper_left
+* pixel_center_integer
+*
+*/
+
+#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.z);
+}
diff --git a/tests/spec/arb_fragment_coord_conventions/compiler/redeclaration-after-use.frag b/tests/spec/arb_fragment_coord_conventions/compiler/redeclaration-after-use.frag
new file mode 100644
index 0000000..b572563
--- /dev/null
+++ b/tests/spec/arb_fragment_coord_conventions/compiler/redeclaration-after-use.frag
@@ -0,0 +1,22 @@
+// [config]
+// expect result: fail
+// glsl_version: 1.50
+// check_link: false
+// [end config]
+/*
+* Section 4.3.8.1 (Input Layout Qualifiers) of the GLSL 1.50 spec says:
+* Within any shader, the first redeclarations of gl_FragCoord must appear
+* before any use of gl_FragCoord.
+*/
+
+#version 150
+
+vec2 a = gl_FragCoord.xy;
+
+in vec4 gl_FragCoord; //redeclaration after use should be illegal
+
+void main() {
+
+ gl_FragColor = vec4 (gl_FragCoord.x, gl_FragCoord.y,
+ gl_FragCoord.z, gl_FragCoord.z);
+}
diff --git a/tests/spec/arb_fragment_coord_conventions/compiler/redeclaration-outside-fs.vert b/tests/spec/arb_fragment_coord_conventions/compiler/redeclaration-outside-fs.vert
new file mode 100644
index 0000000..c97a2d4
--- /dev/null
+++ b/tests/spec/arb_fragment_coord_conventions/compiler/redeclaration-outside-fs.vert
@@ -0,0 +1,26 @@
+// [config]
+// expect result: fail
+// glsl_version: 1.50
+// check_link: false
+// [end config]
+/*
+* Section 4.3.8.1 (Input Layout Qualifiers) of the GLSL 1.50 spec says:
+* Fragment shaders can have an input layout only for redeclaring the
+* built-in variable gl_FragCoord (see section 7.2 Fragment Shader Special
+* Variables). The layout qualifier identifiers for gl_FragCoord are
+* layout-qualifier-id:
+* origin_upper_left
+* pixel_center_integer
+*
+* This test assumes that gl_FragCoord cannot be redeclared anywhere other than a fragment shader.
+*/
+
+#version 150
+
+in vec4 gl_FragCoord; //redeclaration in a VS
+
+void main() {
+
+ gl_FragColor = vec4 (gl_FragCoord.x, gl_FragCoord.y,
+ gl_FragCoord.z, gl_FragCoord.z);
+}
--
1.8.3.1
More information about the Piglit
mailing list