[Piglit] [PATCH] glsl-1.50: test implicitly sized arrays match explicitly sized arrays across the same stage

Chris Forbes chrisf at ijw.co.nz
Mon Dec 22 02:54:34 PST 2014


Reviewed-by: Chris Forbes <chrisf at ijw.co.nz>

On Mon, Dec 22, 2014 at 11:36 PM, Timothy Arceri <t_arceri at yahoo.com.au> wrote:
> ---
>  ...ge-unsized-interface-array-mismatch.shader_test | 55 +++++++++++++++++++++
>  ...e-unsized-interface-array-mismatch2.shader_test | 56 ++++++++++++++++++++++
>  .../intrastage-unsized-interface-array.shader_test | 55 +++++++++++++++++++++
>  ...intrastage-unsized-interface-array2.shader_test | 56 ++++++++++++++++++++++
>  4 files changed, 222 insertions(+)
>  create mode 100644 tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array-mismatch.shader_test
>  create mode 100644 tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array-mismatch2.shader_test
>  create mode 100644 tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array.shader_test
>  create mode 100644 tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array2.shader_test
>
> diff --git a/tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array-mismatch.shader_test b/tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array-mismatch.shader_test
> new file mode 100644
> index 0000000..9e373a2
> --- /dev/null
> +++ b/tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array-mismatch.shader_test
> @@ -0,0 +1,55 @@
> +# This test verifies that a link error is generated if implicitly sized
> +# arrays dont match explicitly sized arrays across the same stage.
> +
> +[require]
> +GLSL >= 1.50
> +
> +[vertex shader]
> +#version 150
> +
> +out ArrayInterfaceBlock
> +{
> +  vec4 a;
> +} i;
> +
> +void main()
> +{
> +  gl_Position = vec4(1.0);
> +}
> +
> +[geometry shader]
> +#version 150
> +
> +layout(lines_adjacency) in;
> +layout(triangle_strip, max_vertices = 3) out;
> +
> +in ArrayInterfaceBlock
> +{
> +  vec4 a;
> +} i[4];
> +
> +void f()
> +{
> +  i[1].a = vec4(1, 0, 0, 1);
> +}
> +
> +[geometry shader]
> +#version 150
> +
> +in ArrayInterfaceBlock
> +{
> +  vec4 a;
> +} i[];
> +
> +void f();
> +
> +void main()
> +{
> +  f();
> +  i[4].a = vec4(1, 0, 0, 1);
> +
> +  gl_Position = i[3].a;
> +}
> +
> +[test]
> +link error
> diff --git a/tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array-mismatch2.shader_test b/tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array-mismatch2.shader_test
> new file mode 100644
> index 0000000..d661795
> --- /dev/null
> +++ b/tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array-mismatch2.shader_test
> @@ -0,0 +1,56 @@
> +# This test verifies that a link error is generated if implicitly sized
> +# arrays dont match explicitly sized arrays across the same stage.
> +
> +[require]
> +GLSL >= 1.50
> +
> +[vertex shader]
> +#version 150
> +
> +out ArrayInterfaceBlock
> +{
> +  vec4 a;
> +} i;
> +
> +void main()
> +{
> +  gl_Position = vec4(1.0);
> +}
> +
> +[geometry shader]
> +#version 150
> +
> +in ArrayInterfaceBlock
> +{
> +  vec4 a;
> +} i[];
> +
> +void f()
> +{
> +  i[4].a = vec4(1, 0, 0, 1);
> +}
> +
> +[geometry shader]
> +#version 150
> +
> +
> +layout(lines_adjacency) in;
> +layout(triangle_strip, max_vertices = 3) out;
> +
> +in ArrayInterfaceBlock
> +{
> +  vec4 a;
> +} i[4];
> +
> +void f();
> +
> +void main()
> +{
> +  f();
> +  i[3].a = vec4(1, 0, 0, 1);
> +
> +  gl_Position = i[3].a;
> +}
> +
> +[test]
> +link error
> diff --git a/tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array.shader_test b/tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array.shader_test
> new file mode 100644
> index 0000000..1dfae4f
> --- /dev/null
> +++ b/tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array.shader_test
> @@ -0,0 +1,55 @@
> +# Test implicitly sized arrays match explicitly sized arrays
> +# across the same stage.
> +
> +[require]
> +GLSL >= 1.50
> +
> +[vertex shader]
> +#version 150
> +
> +out ArrayInterfaceBlock
> +{
> +  vec4 a;
> +} i;
> +
> +void main()
> +{
> +  gl_Position = vec4(1.0);
> +}
> +
> +[geometry shader]
> +#version 150
> +
> +layout(lines_adjacency) in;
> +layout(triangle_strip, max_vertices = 3) out;
> +
> +in ArrayInterfaceBlock
> +{
> +  vec4 a;
> +} i[4];
> +
> +void f()
> +{
> +  i[1].a = vec4(1, 0, 0, 1);
> +}
> +
> +[geometry shader]
> +#version 150
> +
> +in ArrayInterfaceBlock
> +{
> +  vec4 a;
> +} i[];
> +
> +void f();
> +
> +void main()
> +{
> +  f();
> +  i[3].a = vec4(1, 0, 0, 1);
> +
> +  gl_Position = i[3].a;
> +}
> +
> +[test]
> +link success
> diff --git a/tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array2.shader_test b/tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array2.shader_test
> new file mode 100644
> index 0000000..1ad5b08
> --- /dev/null
> +++ b/tests/spec/glsl-1.50/linker/intrastage-unsized-interface-array2.shader_test
> @@ -0,0 +1,56 @@
> +# Test implicitly sized arrays match explicitly sized arrays
> +# across the same stage.
> +
> +[require]
> +GLSL >= 1.50
> +
> +[vertex shader]
> +#version 150
> +
> +out ArrayInterfaceBlock
> +{
> +  vec4 a;
> +} i;
> +
> +void main()
> +{
> +  gl_Position = vec4(1.0);
> +}
> +
> +[geometry shader]
> +#version 150
> +
> +in ArrayInterfaceBlock
> +{
> +  vec4 a;
> +} i[];
> +
> +void f()
> +{
> +  i[3].a = vec4(1, 0, 0, 1);
> +}
> +
> +[geometry shader]
> +#version 150
> +
> +
> +layout(lines_adjacency) in;
> +layout(triangle_strip, max_vertices = 3) out;
> +
> +in ArrayInterfaceBlock
> +{
> +  vec4 a;
> +} i[4];
> +
> +void f();
> +
> +void main()
> +{
> +  f();
> +  i[3].a = vec4(1, 0, 0, 1);
> +
> +  gl_Position = i[3].a;
> +}
> +
> +[test]
> +link success
> --
> 2.1.0
>
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/piglit


More information about the Piglit mailing list