[Piglit] [PATCH 2/2] arb_gpu_shader5: Add more tests for sampler array indexing

Ilia Mirkin imirkin at alum.mit.edu
Sun Aug 10 21:13:31 PDT 2014


This series is

Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>

On Sun, Aug 10, 2014 at 7:14 AM, Chris Forbes <chrisf at ijw.co.nz> wrote:
> Signed-off-by: Chris Forbes <chrisf at ijw.co.nz>
> ---
>  .../fs-nonzero-base.shader_test                    | 68 +++++++++++++++++
>  .../fs-weird-uniforms.shader_test                  | 69 +++++++++++++++++
>  .../fs-with-other.shader_test                      | 69 +++++++++++++++++
>  .../gs-nonzero-base.shader_test                    | 87 ++++++++++++++++++++++
>  .../gs-weird-uniforms.shader_test                  | 87 ++++++++++++++++++++++
>  .../vs-nonzero-base.shader_test                    | 80 ++++++++++++++++++++
>  .../vs-weird-uniforms.shader_test                  | 80 ++++++++++++++++++++
>  7 files changed, 540 insertions(+)
>  create mode 100644 tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/fs-nonzero-base.shader_test
>  create mode 100644 tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/fs-weird-uniforms.shader_test
>  create mode 100644 tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/fs-with-other.shader_test
>  create mode 100644 tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/gs-nonzero-base.shader_test
>  create mode 100644 tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/gs-weird-uniforms.shader_test
>  create mode 100644 tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/vs-nonzero-base.shader_test
>  create mode 100644 tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/vs-weird-uniforms.shader_test
>
> diff --git a/tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/fs-nonzero-base.shader_test b/tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/fs-nonzero-base.shader_test
> new file mode 100644
> index 0000000..58b934e
> --- /dev/null
> +++ b/tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/fs-nonzero-base.shader_test
> @@ -0,0 +1,68 @@
> +# This test verifies that dynamically uniform indexing of sampler arrays
> +# in the fragment shader behaves correctly.
> +
> +[require]
> +GLSL >= 1.50
> +GL_ARB_gpu_shader5
> +
> +[vertex shader passthrough]
> +
> +[fragment shader]
> +#version 150
> +#extension GL_ARB_gpu_shader5: require
> +
> +uniform sampler2D s[4];
> +
> +uniform int n;
> +
> +out vec4 color;
> +
> +void main()
> +{
> +       color = texture(s[n], vec2(0.5, 0.5));
> +}
> +
> +[test]
> +clear color 0.2 0.2 0.2 0.2
> +clear
> +
> +uniform int s[0] 1
> +uniform int s[1] 2
> +uniform int s[2] 3
> +uniform int s[3] 4
> +
> +texture checkerboard 1 0 (32, 32) (1.0, 0.0, 0.0, 0.0) (1.0, 0.0, 0.0, 0.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +texture checkerboard 2 0 (32, 32) (0.0, 1.0, 0.0, 0.0) (0.0, 1.0, 0.0, 0.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +texture checkerboard 3 0 (32, 32) (0.0, 0.0, 1.0, 0.0) (0.0, 0.0, 1.0, 0.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +texture checkerboard 4 0 (32, 32) (1.0, 1.0, 1.0, 1.0) (1.0, 1.0, 1.0, 1.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +uniform int n 0
> +draw rect -1 -1 1 1
> +
> +relative probe rect rgb (0.0, 0.0, 0.5, 0.5) (1.0, 0.0, 0.0)
> +
> +uniform int n 1
> +draw rect 0 -1 1 1
> +
> +relative probe rect rgb (0.5, 0.0, 0.5, 0.5) (0.0, 1.0, 0.0)
> +
> +uniform int n 2
> +draw rect -1 0 1 1
> +
> +relative probe rect rgb (0.0, 0.5, 0.5, 0.5) (0.0, 0.0, 1.0)
> +
> +uniform int n 3
> +draw rect 0 0 1 1
> +
> +relative probe rect rgb (0.5, 0.5, 0.5, 0.5) (1.0, 1.0, 1.0)
> diff --git a/tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/fs-weird-uniforms.shader_test b/tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/fs-weird-uniforms.shader_test
> new file mode 100644
> index 0000000..d7fe84c
> --- /dev/null
> +++ b/tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/fs-weird-uniforms.shader_test
> @@ -0,0 +1,69 @@
> +# This test verifies that dynamically uniform indexing of sampler arrays
> +# in the fragment shader behaves correctly. This variant has the samplers -> TIU
> +# mapping weird, to ensure our indexing is correct.
> +
> +[require]
> +GLSL >= 1.50
> +GL_ARB_gpu_shader5
> +
> +[vertex shader passthrough]
> +
> +[fragment shader]
> +#version 150
> +#extension GL_ARB_gpu_shader5: require
> +
> +uniform sampler2D s[4];
> +
> +uniform int n;
> +
> +out vec4 color;
> +
> +void main()
> +{
> +       color = texture(s[n], vec2(0.5, 0.5));
> +}
> +
> +[test]
> +clear color 0.2 0.2 0.2 0.2
> +clear
> +
> +uniform int s[0] 3
> +uniform int s[1] 2
> +uniform int s[2] 1
> +uniform int s[3] 0
> +
> +texture checkerboard 3 0 (32, 32) (1.0, 0.0, 0.0, 0.0) (1.0, 0.0, 0.0, 0.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +texture checkerboard 2 0 (32, 32) (0.0, 1.0, 0.0, 0.0) (0.0, 1.0, 0.0, 0.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +texture checkerboard 1 0 (32, 32) (0.0, 0.0, 1.0, 0.0) (0.0, 0.0, 1.0, 0.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +texture checkerboard 0 0 (32, 32) (1.0, 1.0, 1.0, 1.0) (1.0, 1.0, 1.0, 1.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +uniform int n 0
> +draw rect -1 -1 1 1
> +
> +relative probe rect rgb (0.0, 0.0, 0.5, 0.5) (1.0, 0.0, 0.0)
> +
> +uniform int n 1
> +draw rect 0 -1 1 1
> +
> +relative probe rect rgb (0.5, 0.0, 0.5, 0.5) (0.0, 1.0, 0.0)
> +
> +uniform int n 2
> +draw rect -1 0 1 1
> +
> +relative probe rect rgb (0.0, 0.5, 0.5, 0.5) (0.0, 0.0, 1.0)
> +
> +uniform int n 3
> +draw rect 0 0 1 1
> +
> +relative probe rect rgb (0.5, 0.5, 0.5, 0.5) (1.0, 1.0, 1.0)
> diff --git a/tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/fs-with-other.shader_test b/tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/fs-with-other.shader_test
> new file mode 100644
> index 0000000..f570dcd
> --- /dev/null
> +++ b/tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/fs-with-other.shader_test
> @@ -0,0 +1,69 @@
> +# This test verifies that dynamically uniform indexing of sampler arrays
> +# in the fragment shader behaves correctly.
> +
> +[require]
> +GLSL >= 1.50
> +GL_ARB_gpu_shader5
> +
> +[vertex shader passthrough]
> +
> +[fragment shader]
> +#version 150
> +#extension GL_ARB_gpu_shader5: require
> +
> +uniform sampler2D other;
> +uniform sampler2D s[4];
> +
> +uniform int n;
> +
> +out vec4 color;
> +
> +void main()
> +{
> +       color = texture(s[n], vec2(0.5, 0.5));
> +}
> +
> +[test]
> +clear color 0.2 0.2 0.2 0.2
> +clear
> +
> +uniform int s[0] 0
> +uniform int s[1] 1
> +uniform int s[2] 2
> +uniform int s[3] 3
> +
> +texture checkerboard 0 0 (32, 32) (1.0, 0.0, 0.0, 0.0) (1.0, 0.0, 0.0, 0.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +texture checkerboard 1 0 (32, 32) (0.0, 1.0, 0.0, 0.0) (0.0, 1.0, 0.0, 0.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +texture checkerboard 2 0 (32, 32) (0.0, 0.0, 1.0, 0.0) (0.0, 0.0, 1.0, 0.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +texture checkerboard 3 0 (32, 32) (1.0, 1.0, 1.0, 1.0) (1.0, 1.0, 1.0, 1.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +uniform int n 0
> +draw rect -1 -1 1 1
> +
> +relative probe rect rgb (0.0, 0.0, 0.5, 0.5) (1.0, 0.0, 0.0)
> +
> +uniform int n 1
> +draw rect 0 -1 1 1
> +
> +relative probe rect rgb (0.5, 0.0, 0.5, 0.5) (0.0, 1.0, 0.0)
> +
> +uniform int n 2
> +draw rect -1 0 1 1
> +
> +relative probe rect rgb (0.0, 0.5, 0.5, 0.5) (0.0, 0.0, 1.0)
> +
> +uniform int n 3
> +draw rect 0 0 1 1
> +
> +relative probe rect rgb (0.5, 0.5, 0.5, 0.5) (1.0, 1.0, 1.0)
> diff --git a/tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/gs-nonzero-base.shader_test b/tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/gs-nonzero-base.shader_test
> new file mode 100644
> index 0000000..11b2e75
> --- /dev/null
> +++ b/tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/gs-nonzero-base.shader_test
> @@ -0,0 +1,87 @@
> +# This test verifies that dynamically uniform indexing of sampler arrays
> +# in the geometry shader behaves correctly.
> +
> +[require]
> +GLSL >= 1.50
> +GL_ARB_gpu_shader5
> +
> +[vertex shader passthrough]
> +
> +[geometry shader]
> +#version 150
> +#extension GL_ARB_gpu_shader5: require
> +
> +uniform sampler2D s[4];
> +
> +uniform int n;
> +
> +layout(triangles) in;
> +layout(triangle_strip, max_vertices=3) out;
> +out vec4 color;
> +
> +void main()
> +{
> +       for (int i = 0; i < 3; i++) {
> +               gl_Position = gl_in[i].gl_Position;
> +               color = texture(s[n], vec2(0.5, 0.5));
> +               EmitVertex();
> +       }
> +       EndPrimitive();
> +}
> +
> +[fragment shader]
> +#version 150
> +#extension GL_ARB_gpu_shader5: require
> +
> +in vec4 color;
> +out vec4 out_color;
> +
> +void main()
> +{
> +       out_color = color;
> +}
> +
> +[test]
> +clear color 0.2 0.2 0.2 0.2
> +clear
> +
> +uniform int s[0] 1
> +uniform int s[1] 2
> +uniform int s[2] 3
> +uniform int s[3] 4
> +
> +texture checkerboard 1 0 (32, 32) (1.0, 0.0, 0.0, 0.0) (1.0, 0.0, 0.0, 0.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +texture checkerboard 2 0 (32, 32) (0.0, 1.0, 0.0, 0.0) (0.0, 1.0, 0.0, 0.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +texture checkerboard 3 0 (32, 32) (0.0, 0.0, 1.0, 0.0) (0.0, 0.0, 1.0, 0.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +texture checkerboard 4 0 (32, 32) (1.0, 1.0, 1.0, 1.0) (1.0, 1.0, 1.0, 1.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +uniform int n 0
> +draw rect -1 -1 1 1
> +
> +relative probe rect rgb (0.0, 0.0, 0.5, 0.5) (1.0, 0.0, 0.0)
> +
> +uniform int n 1
> +draw rect 0 -1 1 1
> +
> +relative probe rect rgb (0.5, 0.0, 0.5, 0.5) (0.0, 1.0, 0.0)
> +
> +uniform int n 2
> +draw rect -1 0 1 1
> +
> +relative probe rect rgb (0.0, 0.5, 0.5, 0.5) (0.0, 0.0, 1.0)
> +
> +uniform int n 3
> +draw rect 0 0 1 1
> +
> +relative probe rect rgb (0.5, 0.5, 0.5, 0.5) (1.0, 1.0, 1.0)
> diff --git a/tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/gs-weird-uniforms.shader_test b/tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/gs-weird-uniforms.shader_test
> new file mode 100644
> index 0000000..4512c99
> --- /dev/null
> +++ b/tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/gs-weird-uniforms.shader_test
> @@ -0,0 +1,87 @@
> +# This test verifies that dynamically uniform indexing of sampler arrays
> +# in the geometry shader behaves correctly.
> +
> +[require]
> +GLSL >= 1.50
> +GL_ARB_gpu_shader5
> +
> +[vertex shader passthrough]
> +
> +[geometry shader]
> +#version 150
> +#extension GL_ARB_gpu_shader5: require
> +
> +uniform sampler2D s[4];
> +
> +uniform int n;
> +
> +layout(triangles) in;
> +layout(triangle_strip, max_vertices=3) out;
> +out vec4 color;
> +
> +void main()
> +{
> +       for (int i = 0; i < 3; i++) {
> +               gl_Position = gl_in[i].gl_Position;
> +               color = texture(s[n], vec2(0.5, 0.5));
> +               EmitVertex();
> +       }
> +       EndPrimitive();
> +}
> +
> +[fragment shader]
> +#version 150
> +#extension GL_ARB_gpu_shader5: require
> +
> +in vec4 color;
> +out vec4 out_color;
> +
> +void main()
> +{
> +       out_color = color;
> +}
> +
> +[test]
> +clear color 0.2 0.2 0.2 0.2
> +clear
> +
> +uniform int s[0] 3
> +uniform int s[1] 2
> +uniform int s[2] 1
> +uniform int s[3] 0
> +
> +texture checkerboard 3 0 (32, 32) (1.0, 0.0, 0.0, 0.0) (1.0, 0.0, 0.0, 0.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +texture checkerboard 2 0 (32, 32) (0.0, 1.0, 0.0, 0.0) (0.0, 1.0, 0.0, 0.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +texture checkerboard 1 0 (32, 32) (0.0, 0.0, 1.0, 0.0) (0.0, 0.0, 1.0, 0.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +texture checkerboard 0 0 (32, 32) (1.0, 1.0, 1.0, 1.0) (1.0, 1.0, 1.0, 1.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +uniform int n 0
> +draw rect -1 -1 1 1
> +
> +relative probe rect rgb (0.0, 0.0, 0.5, 0.5) (1.0, 0.0, 0.0)
> +
> +uniform int n 1
> +draw rect 0 -1 1 1
> +
> +relative probe rect rgb (0.5, 0.0, 0.5, 0.5) (0.0, 1.0, 0.0)
> +
> +uniform int n 2
> +draw rect -1 0 1 1
> +
> +relative probe rect rgb (0.0, 0.5, 0.5, 0.5) (0.0, 0.0, 1.0)
> +
> +uniform int n 3
> +draw rect 0 0 1 1
> +
> +relative probe rect rgb (0.5, 0.5, 0.5, 0.5) (1.0, 1.0, 1.0)
> diff --git a/tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/vs-nonzero-base.shader_test b/tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/vs-nonzero-base.shader_test
> new file mode 100644
> index 0000000..e251f0b
> --- /dev/null
> +++ b/tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/vs-nonzero-base.shader_test
> @@ -0,0 +1,80 @@
> +# This test verifies that dynamically uniform indexing of sampler arrays
> +# in the vertex shader behaves correctly.
> +
> +[require]
> +GLSL >= 1.50
> +GL_ARB_gpu_shader5
> +
> +[vertex shader]
> +#version 150
> +#extension GL_ARB_gpu_shader5: require
> +
> +uniform sampler2D s[4];
> +
> +uniform int n;
> +
> +in vec4 piglit_vertex;
> +out vec4 color;
> +
> +void main()
> +{
> +       gl_Position = piglit_vertex;
> +       color = texture(s[n], vec2(0.5, 0.5));
> +}
> +
> +[fragment shader]
> +#version 150
> +#extension GL_ARB_gpu_shader5: require
> +
> +in vec4 color;
> +out vec4 out_color;
> +
> +void main()
> +{
> +       out_color = color;
> +}
> +
> +[test]
> +clear color 0.2 0.2 0.2 0.2
> +clear
> +
> +uniform int s[0] 1
> +uniform int s[1] 2
> +uniform int s[2] 3
> +uniform int s[3] 4
> +
> +texture checkerboard 1 0 (32, 32) (1.0, 0.0, 0.0, 0.0) (1.0, 0.0, 0.0, 0.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +texture checkerboard 2 0 (32, 32) (0.0, 1.0, 0.0, 0.0) (0.0, 1.0, 0.0, 0.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +texture checkerboard 3 0 (32, 32) (0.0, 0.0, 1.0, 0.0) (0.0, 0.0, 1.0, 0.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +texture checkerboard 4 0 (32, 32) (1.0, 1.0, 1.0, 1.0) (1.0, 1.0, 1.0, 1.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +uniform int n 0
> +draw rect -1 -1 1 1
> +
> +relative probe rect rgb (0.0, 0.0, 0.5, 0.5) (1.0, 0.0, 0.0)
> +
> +uniform int n 1
> +draw rect 0 -1 1 1
> +
> +relative probe rect rgb (0.5, 0.0, 0.5, 0.5) (0.0, 1.0, 0.0)
> +
> +uniform int n 2
> +draw rect -1 0 1 1
> +
> +relative probe rect rgb (0.0, 0.5, 0.5, 0.5) (0.0, 0.0, 1.0)
> +
> +uniform int n 3
> +draw rect 0 0 1 1
> +
> +relative probe rect rgb (0.5, 0.5, 0.5, 0.5) (1.0, 1.0, 1.0)
> diff --git a/tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/vs-weird-uniforms.shader_test b/tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/vs-weird-uniforms.shader_test
> new file mode 100644
> index 0000000..d047f9f
> --- /dev/null
> +++ b/tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/vs-weird-uniforms.shader_test
> @@ -0,0 +1,80 @@
> +# This test verifies that dynamically uniform indexing of sampler arrays
> +# in the vertex shader behaves correctly.
> +
> +[require]
> +GLSL >= 1.50
> +GL_ARB_gpu_shader5
> +
> +[vertex shader]
> +#version 150
> +#extension GL_ARB_gpu_shader5: require
> +
> +uniform sampler2D s[4];
> +
> +uniform int n;
> +
> +in vec4 piglit_vertex;
> +out vec4 color;
> +
> +void main()
> +{
> +       gl_Position = piglit_vertex;
> +       color = texture(s[n], vec2(0.5, 0.5));
> +}
> +
> +[fragment shader]
> +#version 150
> +#extension GL_ARB_gpu_shader5: require
> +
> +in vec4 color;
> +out vec4 out_color;
> +
> +void main()
> +{
> +       out_color = color;
> +}
> +
> +[test]
> +clear color 0.2 0.2 0.2 0.2
> +clear
> +
> +uniform int s[0] 3
> +uniform int s[1] 2
> +uniform int s[2] 1
> +uniform int s[3] 0
> +
> +texture checkerboard 3 0 (32, 32) (1.0, 0.0, 0.0, 0.0) (1.0, 0.0, 0.0, 0.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +texture checkerboard 2 0 (32, 32) (0.0, 1.0, 0.0, 0.0) (0.0, 1.0, 0.0, 0.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +texture checkerboard 1 0 (32, 32) (0.0, 0.0, 1.0, 0.0) (0.0, 0.0, 1.0, 0.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +texture checkerboard 0 0 (32, 32) (1.0, 1.0, 1.0, 1.0) (1.0, 1.0, 1.0, 1.0)
> +texparameter 2D min nearest
> +texparameter 2D mag nearest
> +
> +uniform int n 0
> +draw rect -1 -1 1 1
> +
> +relative probe rect rgb (0.0, 0.0, 0.5, 0.5) (1.0, 0.0, 0.0)
> +
> +uniform int n 1
> +draw rect 0 -1 1 1
> +
> +relative probe rect rgb (0.5, 0.0, 0.5, 0.5) (0.0, 1.0, 0.0)
> +
> +uniform int n 2
> +draw rect -1 0 1 1
> +
> +relative probe rect rgb (0.0, 0.5, 0.5, 0.5) (0.0, 0.0, 1.0)
> +
> +uniform int n 3
> +draw rect 0 0 1 1
> +
> +relative probe rect rgb (0.5, 0.5, 0.5, 0.5) (1.0, 1.0, 1.0)
> --
> 2.0.4
>
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/piglit


More information about the Piglit mailing list