[Piglit] [PATCH 1/7] glsl-1.50: Add GS output layout qualifier redeclaration test

Andres Gomez agomez at igalia.com
Sat Oct 22 20:42:20 UTC 2016


Section 4.3.8.2 (Output Layout Qualifiers) of the GLSL 1.50 spec says:

    "All geometry shader output layout declarations in a program must declare the
     same layout and same value for max_vertices."

Signed-off-by: Andres Gomez <agomez at igalia.com>
---
 ...ut-declaration-consistent-with-prev-layout.geom | 37 ++++++++++++++++++++++
 1 file changed, 37 insertions(+)
 create mode 100644 tests/spec/glsl-1.50/compiler/layout-out-declaration-consistent-with-prev-layout.geom

diff --git a/tests/spec/glsl-1.50/compiler/layout-out-declaration-consistent-with-prev-layout.geom b/tests/spec/glsl-1.50/compiler/layout-out-declaration-consistent-with-prev-layout.geom
new file mode 100644
index 0000000..da8a86c
--- /dev/null
+++ b/tests/spec/glsl-1.50/compiler/layout-out-declaration-consistent-with-prev-layout.geom
@@ -0,0 +1,37 @@
+// [config]
+// expect_result: pass
+// glsl_version: 1.50
+// check_link: true
+// [end config]
+//
+// Section 4.3.8.2 (Output Layout Qualifiers) of the GLSL 1.50 spec says:
+//
+//    "layout(triangle_strip, max_vertices = 60) out; // order does not matter
+//     layout(max_vertices = 60) out;                 // redeclaration okay (*)
+//     layout(triangle_strip) out;                    // redeclaration okay (*)
+//     layout(points) out;                            // error, contradicts triangle_strip
+//     layout(max_vertices = 30) out;                 // error, contradicts 60"
+//
+//    ...
+//
+//    "All geometry shader output layout declarations in a program must declare the
+//     same layout and same value for max_vertices."
+//
+// This test verifies the case marked with (*), namely that no error
+// results from declaring a geometry shader output layout that is
+// consistent with a previously declared geometry shader output layout.
+
+#version 150
+
+layout(lines) in;
+layout(line_strip, max_vertices=3) out;
+
+in vec4 pos[];
+
+layout(line_strip, max_vertices=3) out;
+layout(max_vertices=3) out;
+layout(line_strip) out;
+
+void main()
+{
+}
-- 
2.9.3



More information about the Piglit mailing list