[Piglit] [PATCH] glsl-1.20: Test sizing an array by initialization after the array has been accessed

Timothy Arceri t_arceri at yahoo.com.au
Thu Dec 5 14:13:22 PST 2013


Actually it's both descriptions is there a "which" missing?

Ian Romanick <idr at freedesktop.org> wrote:

>From: Ian Romanick <ian.d.romanick at intel.com>
>
>The "big-enough" test verifies that the compiler accepts an initializer
>can be used to size an array after an access (to the previously
>implicitly size) array has been seen when the access would have been
>in-bounds in the sized array.
>
>The "too-small" test verifies that the compiler rejects an initializer
>can be used to size an array after an access (to the previously
>implicitly size) array has been seen when the access would have been
>out-of-bounds in the sized array.
>
>Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
>Cc: Timothy Arceri <t_arceri at yahoo.com.au>
>---
> .../array-resize-after-access-big-enough.vert        | 20 ++++++++++++++++++++
> .../array-resize-after-access-too-small.vert         | 20 ++++++++++++++++++++
> 2 files changed, 40 insertions(+)
> create mode 100644 tests/spec/glsl-1.20/compiler/structure-and-array-operations/array-resize-after-access-big-enough.vert
> create mode 100644 tests/spec/glsl-1.20/compiler/structure-and-array-operations/array-resize-after-access-too-small.vert
>
>diff --git a/tests/spec/glsl-1.20/compiler/structure-and-array-operations/array-resize-after-access-big-enough.vert b/tests/spec/glsl-1.20/compiler/structure-and-array-operations/array-resize-after-access-big-enough.vert
>new file mode 100644
>index 0000000..1e21b2d
>--- /dev/null
>+++ b/tests/spec/glsl-1.20/compiler/structure-and-array-operations/array-resize-after-access-big-enough.vert
>@@ -0,0 +1,20 @@
>+/* [config]
>+ * expect_result: pass
>+ * glsl_version: 1.20
>+ * [end config]
>+ */
>+#version 120
>+
>+float x[];
>+
>+void foo() { x[1] = 2.; }
>+
>+// The array must be at least 2 elements because of the previous
>+// access to x[1].
>+float x[] = float[2](1., 2.);
>+
>+void main()
>+{
>+	foo();
>+	gl_Position = vec4(x[0]);
>+}
>diff --git a/tests/spec/glsl-1.20/compiler/structure-and-array-operations/array-resize-after-access-too-small.vert b/tests/spec/glsl-1.20/compiler/structure-and-array-operations/array-resize-after-access-too-small.vert
>new file mode 100644
>index 0000000..ebee5e6
>--- /dev/null
>+++ b/tests/spec/glsl-1.20/compiler/structure-and-array-operations/array-resize-after-access-too-small.vert
>@@ -0,0 +1,20 @@
>+/* [config]
>+ * expect_result: fail
>+ * glsl_version: 1.20
>+ * [end config]
>+ */
>+#version 120
>+
>+float x[];
>+
>+void foo() { x[3] = 2.; }
>+
>+// The array must be at least 4 elements because of the previous
>+// access to x[3].
>+float x[] = float[2](1., 2.);
>+
>+void main()
>+{
>+	foo();
>+	gl_Position = vec4(x[0]);
>+}
>-- 
>1.8.1.4
>


More information about the Piglit mailing list