[Piglit] [RFC 3/3] arb_gpu_shader5: add vertex stream id compiler tests

Topi Pohjolainen topi.pohjolainen at intel.com
Tue Oct 15 13:49:37 CEST 2013


Constant cases pass while the non-constant vertex emission case
crashes and the non-constant primitive end fails on NVIDIA
(304.88 on GTX 660).

Signed-off-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
---
 tests/all.tests                                    |  2 ++
 .../primitive-end-with-const-int.geom              | 26 ++++++++++++++++++++++
 .../primitive-end-with-non-const-int.geom          | 26 ++++++++++++++++++++++
 .../vertex-stream-emit-with-const-int.geom         | 26 ++++++++++++++++++++++
 .../vertex-stream-emit-with-non-const-int.geom     | 26 ++++++++++++++++++++++
 5 files changed, 106 insertions(+)
 create mode 100644 tests/spec/arb_gpu_shader5/compiler/builtin-functions/primitive-end-with-const-int.geom
 create mode 100644 tests/spec/arb_gpu_shader5/compiler/builtin-functions/primitive-end-with-non-const-int.geom
 create mode 100644 tests/spec/arb_gpu_shader5/compiler/builtin-functions/vertex-stream-emit-with-const-int.geom
 create mode 100644 tests/spec/arb_gpu_shader5/compiler/builtin-functions/vertex-stream-emit-with-non-const-int.geom

diff --git a/tests/all.tests b/tests/all.tests
index 6aa9b88..042ce13 100644
--- a/tests/all.tests
+++ b/tests/all.tests
@@ -1268,6 +1268,8 @@ spec['ARB_gpu_shader5'] = arb_gpu_shader5
 add_shader_test_dir(arb_gpu_shader5,
                     testsDir + '/spec/arb_gpu_shader5',
                     recursive=True)
+import_glsl_parser_tests(arb_gpu_shader5,
+                         testsDir + '/spec/arb_gpu_shader5', [''])
 
 arb_occlusion_query = Group()
 spec['ARB_occlusion_query'] = arb_occlusion_query
diff --git a/tests/spec/arb_gpu_shader5/compiler/builtin-functions/primitive-end-with-const-int.geom b/tests/spec/arb_gpu_shader5/compiler/builtin-functions/primitive-end-with-const-int.geom
new file mode 100644
index 0000000..9ce1c10
--- /dev/null
+++ b/tests/spec/arb_gpu_shader5/compiler/builtin-functions/primitive-end-with-const-int.geom
@@ -0,0 +1,26 @@
+/* [config]
+ * expect_result: pass
+ * glsl_version: 1.50
+ * check_link: false
+ * require_extensions: GL_ARB_gpu_shader5
+ * [end config]
+ *
+ * Tests compiler/parser: 
+ *
+ * Section 8.10, Geometry Shader Functions says:
+ *   "The argument <stream> must be a constant integral expression."
+ */
+
+#version 150
+#extension GL_ARB_gpu_shader5: enable
+
+layout(points, max_vertices = 1, stream = 0) out;
+layout(points, max_vertices = 1, stream = 1) out;
+
+void main()
+{
+	const int i = 0;
+
+	gl_Position = vec4(0.0);
+	EndStreamPrimitive(i);
+}
diff --git a/tests/spec/arb_gpu_shader5/compiler/builtin-functions/primitive-end-with-non-const-int.geom b/tests/spec/arb_gpu_shader5/compiler/builtin-functions/primitive-end-with-non-const-int.geom
new file mode 100644
index 0000000..57c29f4
--- /dev/null
+++ b/tests/spec/arb_gpu_shader5/compiler/builtin-functions/primitive-end-with-non-const-int.geom
@@ -0,0 +1,26 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.50
+ * check_link: false
+ * require_extensions: GL_ARB_gpu_shader5
+ * [end config]
+ *
+ * Tests compiler/parser: 
+ *
+ * Section 8.10, Geometry Shader Functions says:
+ *   "The argument <stream> must be a constant integral expression."
+ */
+
+#version 150
+#extension GL_ARB_gpu_shader5: enable
+
+layout(points, max_vertices = 1, stream = 0) out;
+layout(points, max_vertices = 1, stream = 1) out;
+
+void main()
+{
+	int i = 0;
+
+	gl_Position = vec4(0.0);
+	EndStreamPrimitive(i);
+}
diff --git a/tests/spec/arb_gpu_shader5/compiler/builtin-functions/vertex-stream-emit-with-const-int.geom b/tests/spec/arb_gpu_shader5/compiler/builtin-functions/vertex-stream-emit-with-const-int.geom
new file mode 100644
index 0000000..80c3d90
--- /dev/null
+++ b/tests/spec/arb_gpu_shader5/compiler/builtin-functions/vertex-stream-emit-with-const-int.geom
@@ -0,0 +1,26 @@
+/* [config]
+ * expect_result: pass
+ * glsl_version: 1.50
+ * check_link: false
+ * require_extensions: GL_ARB_gpu_shader5
+ * [end config]
+ *
+ * Tests compiler/parser: 
+ *
+ * Section 8.10, Geometry Shader Functions says:
+ *   "The argument <stream> must be a constant integral expression."
+ */
+
+#version 150
+#extension GL_ARB_gpu_shader5: enable
+
+layout(points, max_vertices = 1, stream = 0) out;
+layout(points, max_vertices = 1, stream = 1) out;
+
+void main()
+{
+	const int i = 0;
+
+	gl_Position = vec4(0.0);
+	EmitStreamVertex(i);
+}
diff --git a/tests/spec/arb_gpu_shader5/compiler/builtin-functions/vertex-stream-emit-with-non-const-int.geom b/tests/spec/arb_gpu_shader5/compiler/builtin-functions/vertex-stream-emit-with-non-const-int.geom
new file mode 100644
index 0000000..1935649
--- /dev/null
+++ b/tests/spec/arb_gpu_shader5/compiler/builtin-functions/vertex-stream-emit-with-non-const-int.geom
@@ -0,0 +1,26 @@
+/* [config]
+ * expect_result: fail
+ * glsl_version: 1.50
+ * check_link: false
+ * require_extensions: GL_ARB_gpu_shader5
+ * [end config]
+ *
+ * Tests compiler/parser: 
+ *
+ * Section 8.10, Geometry Shader Functions says:
+ *   "The argument <stream> must be a constant integral expression."
+ */
+
+#version 150
+#extension GL_ARB_gpu_shader5: enable
+
+layout(points, max_vertices = 1, stream = 0) out;
+layout(points, max_vertices = 1, stream = 1) out;
+
+void main()
+{
+	int i = 0;
+
+	gl_Position = vec4(0.0);
+	EmitStreamVertex(i);
+}
-- 
1.8.3.1



More information about the Piglit mailing list