[Piglit] [PATCH 2/2] Replace link-mismatch-layout-02 with shader tests

Chris Forbes chrisf at ijw.co.nz
Sun Jul 6 03:01:54 PDT 2014


This is an old test from before shader_runner could express multi-shader
cases, and a little broken.

Replace it with shader_tests which exercise the linker.

Signed-off-by: Chris Forbes <chrisf at ijw.co.nz>
---
 tests/all.py                                       |  4 +-
 tests/shaders/CMakeLists.gl.txt                    |  1 -
 tests/shaders/link-mismatch-layout-02.c            | 96 ----------------------
 .../linker/matching-qualifiers-01.shader_test      | 31 +++++++
 .../linker/matching-qualifiers-02.shader_test      | 32 ++++++++
 .../linker/mismatched-qualifiers-01.shader_test    | 31 +++++++
 6 files changed, 97 insertions(+), 98 deletions(-)
 delete mode 100644 tests/shaders/link-mismatch-layout-02.c
 create mode 100644 tests/spec/amd_conservative_depth/glsl-1.30/linker/matching-qualifiers-01.shader_test
 create mode 100644 tests/spec/amd_conservative_depth/glsl-1.30/linker/matching-qualifiers-02.shader_test
 create mode 100644 tests/spec/amd_conservative_depth/glsl-1.30/linker/mismatched-qualifiers-01.shader_test

diff --git a/tests/all.py b/tests/all.py
index 7ba056f..0d2cd41 100644
--- a/tests/all.py
+++ b/tests/all.py
@@ -534,7 +534,6 @@ add_concurrent_test(shaders, 'glsl-max-vertex-attrib')
 add_concurrent_test(shaders, 'glsl-kwin-blur-1')
 add_concurrent_test(shaders, 'glsl-kwin-blur-2')
 add_concurrent_test(shaders, 'gpu_shader4_attribs')
-add_concurrent_test(shaders, 'link-mismatch-layout-02')
 add_concurrent_test(shaders, 'link-unresolved-function')
 add_concurrent_test(shaders, 'sso-simple')
 add_concurrent_test(shaders, 'sso-uniforms-01')
@@ -1315,6 +1314,9 @@ spec['AMD_conservative_depth'] = {}
 import_glsl_parser_tests(spec['AMD_conservative_depth'],
                          os.path.join(testsDir, 'spec', 'amd_conservative_depth'),
                          [''])
+add_shader_test_dir(spec['AMD_conservative_depth'],
+                    os.path.join(testsDir, 'spec', 'amd_conservative_depth'),
+                    recursive=True)
 
 # Group ARB_arrays_of_arrays
 arb_arrays_of_arrays = {}
diff --git a/tests/shaders/CMakeLists.gl.txt b/tests/shaders/CMakeLists.gl.txt
index 11db820..c827256 100644
--- a/tests/shaders/CMakeLists.gl.txt
+++ b/tests/shaders/CMakeLists.gl.txt
@@ -154,7 +154,6 @@ IF (UNIX)
 ENDIF (UNIX)
 piglit_add_executable (glsl-kwin-blur-1 glsl-kwin-blur-1.c)
 piglit_add_executable (glsl-kwin-blur-2 glsl-kwin-blur-2.c)
-piglit_add_executable (link-mismatch-layout-02 link-mismatch-layout-02.c)
 piglit_add_executable (link-unresolved-function link-unresolved-function.c)
 piglit_add_executable (sso-simple sso-simple.c)
 piglit_add_executable (sso-uniforms-01 sso-uniforms-01.c)
diff --git a/tests/shaders/link-mismatch-layout-02.c b/tests/shaders/link-mismatch-layout-02.c
deleted file mode 100644
index 0f7ec4a..0000000
--- a/tests/shaders/link-mismatch-layout-02.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright © 2010 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-
-/**
- * \file link-mismatch-layout-02.c
- * Verify that linking fails mismatching layout qualifiers are used
- *
- * Attmpt to link two fragment shaders.  One shader specifies
- * \c depth_greater layout of \c gl_FragDepth, and the other specifies
- * \c depth_less.  Linking should fail.
- *
- * \author Ian Romanick <ian.d.romanick at intel.com>
- */
-#include "piglit-util-gl-common.h"
-
-PIGLIT_GL_TEST_CONFIG_BEGIN
-
-	config.supports_gl_compat_version = 10;
-
-	config.window_visual = PIGLIT_GL_VISUAL_RGB | PIGLIT_GL_VISUAL_DOUBLE;
-
-PIGLIT_GL_TEST_CONFIG_END
-
-static const char layout_greater[] =
-	"#extension GL_AMD_conservative_depth: require\n"
-	"layout(depth_greater) float gl_FragDepth;\n"
-	"vec4 foo(void);\n"
-	"void main(void)\n"
-	"{\n"
-	"    gl_FragColor = foo();\n"
-	"}\n";
-
-static const char layout_less[] =
-	"#extension GL_AMD_conservative_depth: require\n"
-	"layout(depth_less) float gl_FragDepth;\n"
-	"vec4 foo(void)\n"
-	"{\n"
-	"    return vec4(1.0);\n"
-	"}\n";
-
-enum piglit_result
-piglit_display(void)
-{
-	return PIGLIT_FAIL;
-}
-
-void
-piglit_init(int argc, char **argv)
-{
-	GLint ok;
-	GLuint prog;
-	GLuint fs[2];
-
-	piglit_require_gl_version(20);
-
-	piglit_require_extension("GL_AMD_conservative_depth");
-
-	fs[0] = piglit_compile_shader_text(GL_FRAGMENT_SHADER, layout_greater);
-	fs[1] = piglit_compile_shader_text(GL_FRAGMENT_SHADER, layout_less);
-	prog = glCreateProgram();
-	glAttachShader(prog, fs[0]);
-	glAttachShader(prog, fs[1]);
-	glLinkProgram(prog);
-	glDeleteShader(fs[0]);
-	glDeleteShader(fs[1]);
-
-	ok = piglit_link_check_status_quiet(prog);
-	if (ok) {
-		fprintf(stderr,
-			"Linking with mismatched gl_FragDepth layouts "
-			"succeeded when it should have failed.\n");
-		piglit_report_result(PIGLIT_FAIL);
-	}
-
-	piglit_report_result(PIGLIT_PASS);
-}
diff --git a/tests/spec/amd_conservative_depth/glsl-1.30/linker/matching-qualifiers-01.shader_test b/tests/spec/amd_conservative_depth/glsl-1.30/linker/matching-qualifiers-01.shader_test
new file mode 100644
index 0000000..b3c35b3
--- /dev/null
+++ b/tests/spec/amd_conservative_depth/glsl-1.30/linker/matching-qualifiers-01.shader_test
@@ -0,0 +1,31 @@
+[require]
+GLSL >= 1.30
+GL_AMD_conservative_depth
+
+[vertex shader passthrough]
+
+[fragment shader]
+
+#extension GL_AMD_conservative_depth: require
+layout(depth_less) out float gl_FragDepth;
+
+void foo();
+void main()
+{
+     gl_FragDepth = gl_FragCoord.z;
+     foo();
+}
+
+[fragment shader]
+
+#extension GL_AMD_conservative_depth: require
+layout(depth_less) out float gl_FragDepth;
+
+void foo()
+{
+     if (gl_FragCoord.z > 0.5)
+	gl_FragDepth = 0.5;
+}
+
+[test]
+link success
diff --git a/tests/spec/amd_conservative_depth/glsl-1.30/linker/matching-qualifiers-02.shader_test b/tests/spec/amd_conservative_depth/glsl-1.30/linker/matching-qualifiers-02.shader_test
new file mode 100644
index 0000000..2dff270
--- /dev/null
+++ b/tests/spec/amd_conservative_depth/glsl-1.30/linker/matching-qualifiers-02.shader_test
@@ -0,0 +1,32 @@
+[require]
+GLSL >= 1.30
+GL_AMD_conservative_depth
+
+[vertex shader passthrough]
+
+[fragment shader]
+
+#extension GL_AMD_conservative_depth: require
+layout(depth_less) out float gl_FragDepth;
+
+void foo();
+void main()
+{
+     gl_FragDepth = gl_FragCoord.z;
+     foo();
+}
+
+[fragment shader]
+
+/* this shader contains no static write to gl_FragDepth,
+ * so need not redeclare it
+ */
+
+void foo()
+{
+     gl_FragColor = vec4(1);
+}
+
+[test]
+link success
+
diff --git a/tests/spec/amd_conservative_depth/glsl-1.30/linker/mismatched-qualifiers-01.shader_test b/tests/spec/amd_conservative_depth/glsl-1.30/linker/mismatched-qualifiers-01.shader_test
new file mode 100644
index 0000000..2f0b16c
--- /dev/null
+++ b/tests/spec/amd_conservative_depth/glsl-1.30/linker/mismatched-qualifiers-01.shader_test
@@ -0,0 +1,31 @@
+[require]
+GLSL >= 1.30
+GL_AMD_conservative_depth
+
+[vertex shader passthrough]
+
+[fragment shader]
+
+#extension GL_AMD_conservative_depth: require
+layout(depth_less) out float gl_FragDepth;
+
+void foo();
+void main()
+{
+     gl_FragDepth = gl_FragCoord.z;
+     foo();
+}
+
+[fragment shader]
+
+#extension GL_AMD_conservative_depth: require
+layout(depth_greater) out float gl_FragDepth;
+
+void foo()
+{
+     if (gl_FragCoord.z > 0.5)
+	 gl_FragDepth = 0.5;
+}
+
+[test]
+link error
-- 
2.0.1



More information about the Piglit mailing list