[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