[Piglit] [PATCH 14/14] Test that gl_in may be redeclared with an array size.
Paul Berry
stereotype441 at gmail.com
Wed Oct 2 16:45:42 PDT 2013
---
...gs-redeclares-pervertex-in-with-array-size.geom | 45 ++++++++++++++++++++++
1 file changed, 45 insertions(+)
create mode 100644 tests/spec/glsl-1.50/compiler/gs-redeclares-pervertex-in-with-array-size.geom
diff --git a/tests/spec/glsl-1.50/compiler/gs-redeclares-pervertex-in-with-array-size.geom b/tests/spec/glsl-1.50/compiler/gs-redeclares-pervertex-in-with-array-size.geom
new file mode 100644
index 0000000..f408c62
--- /dev/null
+++ b/tests/spec/glsl-1.50/compiler/gs-redeclares-pervertex-in-with-array-size.geom
@@ -0,0 +1,45 @@
+// [config]
+// expect_result: pass
+// glsl_version: 1.50
+// check_link: false
+// [end config]
+//
+// From section 7.1.1 (Compatibility Profile Built-In Language
+// Variables) of the GLSL 4.10 spec:
+//
+// However, when a built-in interface block with an instance name
+// is redeclared (e.g., gl_in), the instance name must be included
+// in the redeclaration. It is an error to not include the
+// built-in instance name or to change its name. For example,
+//
+// in gl_PerVertex {
+// vec4 gl_ClipVertex;
+// vec4 gl_FrontColor;
+// } gl_in[]; // must be present and must be "gl_in[]"
+//
+// Although the example mentions "gl_in[]", it seems reasonable to
+// assume that specifying an array size (e.g. "gl_in[3]") is also
+// allowed (this is confirmed by tests of the NVIDIA proprietary
+// driver for Linux, version 313.18).
+//
+// Note: although this text appears in a section referring to
+// compatibility profile variables, it's clear from context that it's
+// meant to apply to any redeclaration of gl_in, whether it is done in
+// a compatibility or a core profile.
+//
+// This appears to be a clarification to the behaviour established for
+// gl_PerVertex by GLSL 1.50, therefore we test it using GLSL version
+// 1.50.
+
+#version 150
+
+layout(triangles) in;
+layout(triangle_strip, max_vertices = 3) out;
+
+in gl_PerVertex {
+ vec4 gl_Position;
+} gl_in[3];
+
+void main()
+{
+}
--
1.8.4
More information about the Piglit
mailing list