summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorChris Forbes <chrisf@ijw.co.nz>2014-07-06 22:01:54 +1200
committerChris Forbes <chrisf@ijw.co.nz>2014-07-12 11:01:58 +1200
commit1ae74bd94a6d33a1136746bbb285ce168a5e6f31 (patch)
treea492904caf6460f34c85a57f1e27466868d735a7 /tests
parentb6349a270a15d8589a8daff41cf984355487d382 (diff)
Replace link-mismatch-layout-02 with shader tests
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@ijw.co.nz> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/all.py4
-rw-r--r--tests/shaders/CMakeLists.gl.txt1
-rw-r--r--tests/shaders/link-mismatch-layout-02.c96
-rw-r--r--tests/spec/amd_conservative_depth/glsl-1.30/linker/matching-qualifiers-01.shader_test31
-rw-r--r--tests/spec/amd_conservative_depth/glsl-1.30/linker/matching-qualifiers-02.shader_test32
-rw-r--r--tests/spec/amd_conservative_depth/glsl-1.30/linker/mismatched-qualifiers-01.shader_test31
6 files changed, 97 insertions, 98 deletions
diff --git a/tests/all.py b/tests/all.py
index 694e53ca8..93b65b4a8 100644
--- a/tests/all.py
+++ b/tests/all.py
@@ -492,7 +492,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')
@@ -1273,6 +1272,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 11db82042..c8272566f 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 0f7ec4aaa..000000000
--- 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@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 000000000..b3c35b349
--- /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 000000000..2dff27038
--- /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 000000000..2f0b16cc6
--- /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