diff options
author | Timothy Arceri <t_arceri@yahoo.com.au> | 2015-11-06 10:08:07 +1100 |
---|---|---|
committer | Timothy Arceri <t_arceri@yahoo.com.au> | 2015-11-07 10:16:30 +1100 |
commit | f3c2631bced02413234fa85cc408aa8767576848 (patch) | |
tree | 1d59c7cee24296b830c2e29050a1342b4c3c5d98 | |
parent | c7732c6d05769f3958a53591bb7afb395c5fb01b (diff) |
arb_explicit_uniform_location: add more qualifier tests for subroutines
Test results:
layout-subroutine-index-uniform.vert:
Nvidia GeForce 840M - NVIDIA 346.47: pass
Mesa 11.1-dev - pass
layout-subroutine-location-function.vert:
Nvidia GeForce 840M - NVIDIA 346.47: pass
Mesa 11.1-dev - segfault
layout-subroutine-location.vert:
Nvidia GeForce 840M - NVIDIA 346.47: pass
Mesa 11.1-dev - pass
V2: It turns out there is what seems an artifical limitation where
either GL_ARB_explicit_attrib_location or GLSL 330 is required for
this extension. As Mesa implements this restriction for uniforms
this is now added to the uniform tests.
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
3 files changed, 44 insertions, 0 deletions
diff --git a/tests/spec/arb_explicit_uniform_location/compiler/layout-subroutine-index-uniform.vert b/tests/spec/arb_explicit_uniform_location/compiler/layout-subroutine-index-uniform.vert new file mode 100644 index 000000000..36a27b3ad --- /dev/null +++ b/tests/spec/arb_explicit_uniform_location/compiler/layout-subroutine-index-uniform.vert @@ -0,0 +1,15 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// require_extensions: GL_ARB_shader_subroutine GL_ARB_explicit_uniform_location GL_ARB_explicit_attrib_location +// [end config] + +#version 150 +#extension GL_ARB_shader_subroutine: require +#extension GL_ARB_explicit_uniform_location: require +#extension GL_ARB_explicit_attrib_location: require + +subroutine void func_type(); + +/* A subroutine uniform for the above type */ +layout(index = 2) subroutine uniform func_type f; diff --git a/tests/spec/arb_explicit_uniform_location/compiler/layout-subroutine-location-function.vert b/tests/spec/arb_explicit_uniform_location/compiler/layout-subroutine-location-function.vert new file mode 100644 index 000000000..c63f3c56f --- /dev/null +++ b/tests/spec/arb_explicit_uniform_location/compiler/layout-subroutine-location-function.vert @@ -0,0 +1,14 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// require_extensions: GL_ARB_shader_subroutine GL_ARB_explicit_uniform_location +// [end config] + +#version 150 +#extension GL_ARB_shader_subroutine: require +#extension GL_ARB_explicit_uniform_location: require + +subroutine void func_type(); + +/* A subroutine matching the above type */ +layout(location = 2) subroutine (func_type) void f() {} diff --git a/tests/spec/arb_explicit_uniform_location/compiler/layout-subroutine-location.vert b/tests/spec/arb_explicit_uniform_location/compiler/layout-subroutine-location.vert new file mode 100644 index 000000000..47b6700ba --- /dev/null +++ b/tests/spec/arb_explicit_uniform_location/compiler/layout-subroutine-location.vert @@ -0,0 +1,15 @@ +// [config] +// expect_result: pass +// glsl_version: 1.50 +// require_extensions: GL_ARB_shader_subroutine GL_ARB_explicit_uniform_location GL_ARB_explicit_attrib_location +// [end config] + +#version 150 +#extension GL_ARB_shader_subroutine: require +#extension GL_ARB_explicit_uniform_location: require +#extension GL_ARB_explicit_attrib_location: require + +subroutine void func_type(); + +/* A subroutine uniform for the above type */ +layout(location = 2) subroutine uniform func_type f; |