>From the ARB_tessellation_shader spec (Section 2.14.2):

   Linking will fail if the program object contains objects to form a
   tessellation control shader (see section 2.X.1), and

     * the program contains no objects to form a vertex shader;

>From the ARB_tessellation_shader spec (Section 2.14.2):

   Linking will fail if the program object contains objects to form a
   tessellation evaluation shader (see section 2.X.3), and

     * the program contains no objects to form a vertex shader;

Signed-off-by: Fabian Bieler <[email protected]>
---
 tests/all.py                                       |  2 +-
 .../linker/no-vs.shader_test                       | 47 ++++++++++++++++++++++
 .../linker/tcs-no-vs.shader_test                   | 33 +++++++++++++++
 .../linker/tes-no-vs.shader_test                   | 30 ++++++++++++++
 4 files changed, 111 insertions(+), 1 deletion(-)
 create mode 100644 tests/spec/arb_tessellation_shader/linker/no-vs.shader_test
 create mode 100644 
tests/spec/arb_tessellation_shader/linker/tcs-no-vs.shader_test
 create mode 100644 
tests/spec/arb_tessellation_shader/linker/tes-no-vs.shader_test

diff --git a/tests/all.py b/tests/all.py
index 580e648..8d24751 100644
--- a/tests/all.py
+++ b/tests/all.py
@@ -1446,7 +1446,7 @@ add_concurrent_test(arb_tessellation_shader, 
'arb_tessellation_shader-invalid-pa
 add_concurrent_test(arb_tessellation_shader, 
'arb_tessellation_shader-invalid-primitive')
 import_glsl_parser_tests(arb_tessellation_shader,
                          os.path.join(testsDir, 'spec',
-                         'arb_tessellation_shader'), ['compiler'])
+                         'arb_tessellation_shader'), ['compiler', 'linker'])
 
 # Group ARB_texture_multisample
 samplers_atm = ['sampler2DMS', 'isampler2DMS', 'usampler2DMS',
diff --git a/tests/spec/arb_tessellation_shader/linker/no-vs.shader_test 
b/tests/spec/arb_tessellation_shader/linker/no-vs.shader_test
new file mode 100644
index 0000000..c0cf17b
--- /dev/null
+++ b/tests/spec/arb_tessellation_shader/linker/no-vs.shader_test
@@ -0,0 +1,47 @@
+# From the ARB_tessellation_shader spec (Section 2.14.2):
+#
+#   Linking will fail if the program object contains objects to form a
+#   tessellation control shader (see section 2.X.1), and
+#
+#     * the program contains no objects to form a vertex shader;
+#
+# From the ARB_tessellation_shader spec (Section 2.14.2):
+#
+#   Linking will fail if the program object contains objects to form a
+#   tessellation evaluation shader (see section 2.X.3), and
+#
+#     * the program contains no objects to form a vertex shader;
+#
+[require]
+GLSL >= 1.50
+GL_ARB_tessellation_shader
+
+
+[tessellation control shader]
+#extension GL_ARB_tessellation_shader: require
+layout(vertices = 3) out;
+
+void main() {
+       gl_TessLevelOuter = float[4](1.0, 1.0, 1.0, 0.0);
+       gl_TessLevelInner = float[2](0.0, 0.0);
+}
+
+
+[tessellation evaluation shader]
+#extension GL_ARB_tessellation_shader: require
+layout(triangles) in;
+
+void main() {
+       gl_Position = vec4(0);
+}
+
+
+[fragment shader]
+void main()
+{
+       gl_FragColor = vec4(0);
+}
+
+
+[test]
+link error
diff --git a/tests/spec/arb_tessellation_shader/linker/tcs-no-vs.shader_test 
b/tests/spec/arb_tessellation_shader/linker/tcs-no-vs.shader_test
new file mode 100644
index 0000000..13311af
--- /dev/null
+++ b/tests/spec/arb_tessellation_shader/linker/tcs-no-vs.shader_test
@@ -0,0 +1,33 @@
+# From the ARB_tessellation_shader spec (Section 2.14.2):
+#
+#   Linking will fail if the program object contains objects to form a
+#   tessellation control shader (see section 2.X.1), and
+#
+#     * the program contains no objects to form a vertex shader;
+#
+
+
+[require]
+GLSL >= 1.50
+GL_ARB_tessellation_shader
+
+
+[tessellation control shader]
+#extension GL_ARB_tessellation_shader: require
+layout(vertices = 3) out;
+
+void main() {
+       gl_TessLevelOuter = float[4](1.0, 1.0, 1.0, 0.0);
+       gl_TessLevelInner = float[2](0.0, 0.0);
+}
+
+
+[fragment shader]
+void main()
+{
+       gl_FragColor = vec4(0);
+}
+
+
+[test]
+link error
diff --git a/tests/spec/arb_tessellation_shader/linker/tes-no-vs.shader_test 
b/tests/spec/arb_tessellation_shader/linker/tes-no-vs.shader_test
new file mode 100644
index 0000000..f7ab0a2
--- /dev/null
+++ b/tests/spec/arb_tessellation_shader/linker/tes-no-vs.shader_test
@@ -0,0 +1,30 @@
+# From the ARB_tessellation_shader spec (Section 2.14.2):
+#
+#   Linking will fail if the program object contains objects to form a
+#   tessellation evaluation shader (see section 2.X.3), and
+#
+#     * the program contains no objects to form a vertex shader;
+#
+[require]
+GLSL >= 1.50
+GL_ARB_tessellation_shader
+
+
+[tessellation evaluation shader]
+#extension GL_ARB_tessellation_shader: require
+layout(triangles) in;
+
+void main() {
+       gl_Position = vec4(0);
+}
+
+
+[fragment shader]
+void main()
+{
+       gl_FragColor = vec4(0);
+}
+
+
+[test]
+link error
-- 
1.8.3.2

_______________________________________________
Piglit mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to