[Piglit] [PATCH 5/6] Basic geometry shader sanity tests.

Paul Berry stereotype441 at gmail.com
Thu Feb 14 08:50:52 PST 2013


---
 tests/all.tests                                    |  9 ++++
 .../spec/arb_geometry_shader4/compiler/sanity.geom | 17 ++++++++
 .../execution/sanity.shader_test                   | 50 +++++++++++++++++++++
 tests/spec/glsl-1.50/compiler/geometry-basic.geom  | 18 ++++++++
 .../glsl-1.50/execution/geometry-basic.shader_test | 51 ++++++++++++++++++++++
 5 files changed, 145 insertions(+)
 create mode 100644 tests/spec/arb_geometry_shader4/compiler/sanity.geom
 create mode 100644 tests/spec/arb_geometry_shader4/execution/sanity.shader_test
 create mode 100644 tests/spec/glsl-1.50/compiler/geometry-basic.geom
 create mode 100644 tests/spec/glsl-1.50/execution/geometry-basic.shader_test

diff --git a/tests/all.tests b/tests/all.tests
index f2229c6..f150ede 100644
--- a/tests/all.tests
+++ b/tests/all.tests
@@ -2188,6 +2188,15 @@ arb_map_buffer_alignment = Group()
 spec['ARB_map_buffer_alignment'] = arb_map_buffer_alignment
 add_plain_test(arb_map_buffer_alignment, 'arb_map_buffer_alignment-sanity_test')
 
+arb_geometry_shader4 = Group()
+spec['ARB_geometry_shader4'] = arb_geometry_shader4
+add_shader_test_dir(spec['ARB_geometry_shader4'],
+                    os.path.join(testsDir, 'spec', 'arb_geometry_shader4'),
+                    recursive=True)
+import_glsl_parser_tests(spec['ARB_geometry_shader4'],
+                         os.path.join(testsDir, 'spec', 'arb_geometry_shader4'),
+                         ['compiler'])
+
 # group glslparsertest ------------------------------------------------------
 glslparsertest = Group()
 # Add all shader source files in the directories below.
diff --git a/tests/spec/arb_geometry_shader4/compiler/sanity.geom b/tests/spec/arb_geometry_shader4/compiler/sanity.geom
new file mode 100644
index 0000000..50a5651
--- /dev/null
+++ b/tests/spec/arb_geometry_shader4/compiler/sanity.geom
@@ -0,0 +1,17 @@
+// [config]
+// expect_result: pass
+// glsl_version: 1.10
+// check_link: true
+// require_extensions: GL_ARB_geometry_shader4
+// [end config]
+
+#version 110
+#extension GL_ARB_geometry_shader4: enable
+
+void main()
+{
+  for (int i = 0; i < 3; i++) {
+    gl_Position = vec4(0.0);
+    EmitVertex();
+  }
+}
diff --git a/tests/spec/arb_geometry_shader4/execution/sanity.shader_test b/tests/spec/arb_geometry_shader4/execution/sanity.shader_test
new file mode 100644
index 0000000..5b62e30
--- /dev/null
+++ b/tests/spec/arb_geometry_shader4/execution/sanity.shader_test
@@ -0,0 +1,50 @@
+[require]
+GL >= 2.0
+GLSL >= 1.10
+GL_ARB_geometry_shader4
+
+[vertex shader]
+#version 110
+
+attribute vec4 vertex;
+
+void main()
+{
+  gl_Position = vertex;
+}
+
+[geometry shader]
+#version 110
+#extension GL_ARB_geometry_shader4: enable
+
+void main()
+{
+  for (int i = 0; i < 3; i++) {
+    gl_Position = gl_PositionIn[i];
+    EmitVertex();
+  }
+}
+
+[geometry layout]
+input type GL_TRIANGLES
+output type GL_TRIANGLE_STRIP
+vertices out 3
+
+[fragment shader]
+#version 110
+
+void main()
+{
+  gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0);
+}
+
+[vertex data]
+vertex/float/2
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+
+[test]
+draw arrays GL_TRIANGLE_FAN 0 4
+probe all rgba 0.0 1.0 0.0 1.0
diff --git a/tests/spec/glsl-1.50/compiler/geometry-basic.geom b/tests/spec/glsl-1.50/compiler/geometry-basic.geom
new file mode 100644
index 0000000..ede61e3
--- /dev/null
+++ b/tests/spec/glsl-1.50/compiler/geometry-basic.geom
@@ -0,0 +1,18 @@
+// [config]
+// expect_result: pass
+// glsl_version: 1.50
+// check_link: true
+// [end config]
+
+#version 150
+
+layout(triangles) in;
+layout(triangle_strip, max_vertices = 3) out;
+
+void main()
+{
+  for (int i = 0; i < 3; i++) {
+    gl_Position = vec4(0.0);
+    EmitVertex();
+  }
+}
diff --git a/tests/spec/glsl-1.50/execution/geometry-basic.shader_test b/tests/spec/glsl-1.50/execution/geometry-basic.shader_test
new file mode 100644
index 0000000..06d0209
--- /dev/null
+++ b/tests/spec/glsl-1.50/execution/geometry-basic.shader_test
@@ -0,0 +1,51 @@
+[require]
+GL >= 3.1
+GLSL >= 1.50
+
+[vertex shader]
+#version 150
+
+in vec4 vertex;
+out vec4 vertex_to_gs;
+
+void main()
+{
+  vertex_to_gs = vertex;
+}
+
+[geometry shader]
+#version 150
+
+layout(triangles) in;
+layout(triangle_strip, max_vertices = 3) out;
+
+in vec4 vertex_to_gs[3];
+
+void main()
+{
+  for (int i = 0; i < 3; i++) {
+    gl_Position = vertex_to_gs[i];
+    EmitVertex();
+  }
+}
+
+[fragment shader]
+#version 150
+
+out vec4 color;
+
+void main()
+{
+  color = vec4(0.0, 1.0, 0.0, 1.0);
+}
+
+[vertex data]
+vertex/float/2
+-1.0 -1.0
+ 1.0 -1.0
+ 1.0  1.0
+-1.0  1.0
+
+[test]
+draw arrays GL_TRIANGLE_FAN 0 4
+probe all rgba 0.0 1.0 0.0 1.0
-- 
1.8.1.3



More information about the Piglit mailing list