summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndres Gomez <agomez@igalia.com>2016-10-25 15:59:27 +0300
committerAndres Gomez <agomez@igalia.com>2016-11-26 02:39:55 +0200
commit444f17e89e4933025ec5387925a4272514fe8422 (patch)
treec84c6667f45e0e0b5ddeac1dd0c65797c567b3c3
parentdd29f890cac9c047be24b6e649853fbd34ffc365 (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>
-rw-r--r--tests/spec/arb_shading_language_420pack/compiler/layout-qualifiers/multiple-input-non-value-layout-qualifier-in-single-declaration-1.geom31
-rw-r--r--tests/spec/arb_shading_language_420pack/compiler/layout-qualifiers/multiple-input-non-value-layout-qualifier-in-single-declaration-2.geom31
-rw-r--r--tests/spec/arb_shading_language_420pack/compiler/layout-qualifiers/multiple-input-value-layout-qualifier-in-single-declaration-3.geom26
-rw-r--r--tests/spec/arb_shading_language_420pack/compiler/layout-qualifiers/multiple-input-value-layout-qualifier-in-single-declaration-4.geom26
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()
+{
+}