diff options
author | Andres Gomez <agomez@igalia.com> | 2016-10-25 15:59:27 +0300 |
---|---|---|
committer | Andres Gomez <agomez@igalia.com> | 2016-11-26 02:39:55 +0200 |
commit | 444f17e89e4933025ec5387925a4272514fe8422 (patch) | |
tree | c84c6667f45e0e0b5ddeac1dd0c65797c567b3c3 | |
parent | dd29f890cac9c047be24b6e649853fbd34ffc365 (diff) |
arb_shading_language_420pack: Add multiple layout qualifiers in a single input declaration tests
This adds tests to check that all layout-qualifier-ids are taken into
account when spread across multiple layout-qualifiers for a single
global input declaration.
The tests check that this works for value and non-value
layout-qualifier-ids.
From the ARB_shading_language_420pack spec:
"More than one layout qualifier may appear in a single declaration."
Reviewed-by: Timothy Arceri <timothy.arceri@collabora.com>
Signed-off-by: Andres Gomez <agomez@igalia.com>
4 files changed, 114 insertions, 0 deletions
diff --git a/tests/spec/arb_shading_language_420pack/compiler/layout-qualifiers/multiple-input-non-value-layout-qualifier-in-single-declaration-1.geom b/tests/spec/arb_shading_language_420pack/compiler/layout-qualifiers/multiple-input-non-value-layout-qualifier-in-single-declaration-1.geom new file mode 100644 index 000000000..4e36e3c5d --- /dev/null +++ b/tests/spec/arb_shading_language_420pack/compiler/layout-qualifiers/multiple-input-non-value-layout-qualifier-in-single-declaration-1.geom @@ -0,0 +1,31 @@ +// [config] +// expect_result: pass +// glsl_version: 1.50 +// require_extensions: GL_ARB_shading_language_420pack GL_ARB_gpu_shader5 +// [end config] +// +// From the ARB_shading_language_420pack spec: +// +// "More than one layout qualifier may appear in a single declaration." +// +// Section 4.3.8.1 (Input Layout Qualifiers) of the GLSL 1.50 spec says: +// +// "For inputs declared without an array size, including +// intrinsically declared inputs (i.e., gl_in), a layout must be +// declared before any use of the method length() or other array +// use requiring its size be known." + +#version 150 +#extension GL_ARB_shading_language_420pack: enable +#extension GL_ARB_gpu_shader5 : enable + +layout(lines) layout(invocations=4) in; +layout(triangle_strip, max_vertices=3) out; + +in vec4 Color1[]; + +uniform int foo[Color1.length() == 2 ? 1 : -1]; + +void main() +{ +} diff --git a/tests/spec/arb_shading_language_420pack/compiler/layout-qualifiers/multiple-input-non-value-layout-qualifier-in-single-declaration-2.geom b/tests/spec/arb_shading_language_420pack/compiler/layout-qualifiers/multiple-input-non-value-layout-qualifier-in-single-declaration-2.geom new file mode 100644 index 000000000..449d97565 --- /dev/null +++ b/tests/spec/arb_shading_language_420pack/compiler/layout-qualifiers/multiple-input-non-value-layout-qualifier-in-single-declaration-2.geom @@ -0,0 +1,31 @@ +// [config] +// expect_result: pass +// glsl_version: 1.50 +// require_extensions: GL_ARB_shading_language_420pack GL_ARB_gpu_shader5 +// [end config] +// +// From the ARB_shading_language_420pack spec: +// +// "More than one layout qualifier may appear in a single declaration." +// +// Section 4.3.8.1 (Input Layout Qualifiers) of the GLSL 1.50 spec says: +// +// "For inputs declared without an array size, including +// intrinsically declared inputs (i.e., gl_in), a layout must be +// declared before any use of the method length() or other array +// use requiring its size be known." + +#version 150 +#extension GL_ARB_shading_language_420pack: enable +#extension GL_ARB_gpu_shader5 : enable + +layout(invocations=4) layout(lines) in; +layout(triangle_strip, max_vertices=3) out; + +in vec4 Color1[]; + +uniform int foo[Color1.length() == 2 ? 1 : -1]; + +void main() +{ +} diff --git a/tests/spec/arb_shading_language_420pack/compiler/layout-qualifiers/multiple-input-value-layout-qualifier-in-single-declaration-3.geom b/tests/spec/arb_shading_language_420pack/compiler/layout-qualifiers/multiple-input-value-layout-qualifier-in-single-declaration-3.geom new file mode 100644 index 000000000..d07bd976c --- /dev/null +++ b/tests/spec/arb_shading_language_420pack/compiler/layout-qualifiers/multiple-input-value-layout-qualifier-in-single-declaration-3.geom @@ -0,0 +1,26 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// require_extensions: GL_ARB_shading_language_420pack GL_ARB_gpu_shader5 +// [end config] +// +// From the ARB_shading_language_420pack spec: +// +// "More than one layout qualifier may appear in a single declaration." +// +// From the ARB_gpu_shader5 spec: +// +// "If an invocation count is declared, all such declarations must +// specify the same count." + +#version 150 +#extension GL_ARB_shading_language_420pack: enable +#extension GL_ARB_gpu_shader5 : enable + +layout(lines) layout(invocations=4) in; +layout(triangle_strip, max_vertices=3) out; +layout(invocations=3) in; + +void main() +{ +} diff --git a/tests/spec/arb_shading_language_420pack/compiler/layout-qualifiers/multiple-input-value-layout-qualifier-in-single-declaration-4.geom b/tests/spec/arb_shading_language_420pack/compiler/layout-qualifiers/multiple-input-value-layout-qualifier-in-single-declaration-4.geom new file mode 100644 index 000000000..92371ccbc --- /dev/null +++ b/tests/spec/arb_shading_language_420pack/compiler/layout-qualifiers/multiple-input-value-layout-qualifier-in-single-declaration-4.geom @@ -0,0 +1,26 @@ +// [config] +// expect_result: fail +// glsl_version: 1.50 +// require_extensions: GL_ARB_shading_language_420pack GL_ARB_gpu_shader5 +// [end config] +// +// From the ARB_shading_language_420pack spec: +// +// "More than one layout qualifier may appear in a single declaration." +// +// From the ARB_gpu_shader5 spec: +// +// "If an invocation count is declared, all such declarations must +// specify the same count." + +#version 150 +#extension GL_ARB_shading_language_420pack: enable +#extension GL_ARB_gpu_shader5 : enable + +layout(invocations=4) layout(lines) in; +layout(triangle_strip, max_vertices=3) out; +layout(invocations=3) in; + +void main() +{ +} |