diff options
author | Chris Forbes <chrisf@ijw.co.nz> | 2014-07-06 22:01:54 +1200 |
---|---|---|
committer | Chris Forbes <chrisf@ijw.co.nz> | 2014-07-12 11:01:58 +1200 |
commit | 1ae74bd94a6d33a1136746bbb285ce168a5e6f31 (patch) | |
tree | a492904caf6460f34c85a57f1e27466868d735a7 /tests | |
parent | b6349a270a15d8589a8daff41cf984355487d382 (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')
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 |