[Piglit] [PATCH] arb_gpu_shader5: test indexing of samplers inside structs

Chris Forbes chrisf at ijw.co.nz
Wed Jun 3 22:31:09 PDT 2015


Looks good to me.

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

On Thu, Jun 4, 2015 at 2:28 PM, Timothy Arceri <t_arceri at yahoo.com.au> wrote:
> Test results:
>
> Nvidia GeForce 840M - NVIDIA 346.47: pass
> ---
>  .../fs-struct-nonconst-sampler-const.shader_test   | 72 ++++++++++++++++++++
>  ...fs-struct-nonconst-sampler-nonconst.shader_test | 77 ++++++++++++++++++++++
>  .../fs-struct-nonconst-sampler.shader_test         | 72 ++++++++++++++++++++
>  3 files changed, 221 insertions(+)
>  create mode 100644 tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/fs-struct-nonconst-sampler-const.shader_test
>  create mode 100644 tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/fs-struct-nonconst-sampler-nonconst.shader_test
>  create mode 100644 tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/fs-struct-nonconst-sampler.shader_test
>
> diff --git a/tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/fs-struct-nonconst-sampler-const.shader_test b/tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/fs-struct-nonconst-sampler-const.shader_test
> new file mode 100644
> index 0000000..16f73a4
> --- /dev/null
> +++ b/tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/fs-struct-nonconst-sampler-const.shader_test
> @@ -0,0 +1,72 @@
> +# 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
> +
> +struct S {
> +   sampler2D tex[2];
> +};
> +
> +uniform S s[4];
> +
> +uniform int n;
> +
> +out vec4 color;
> +
> +void main()
> +{
> +       color = texture(s[n].tex[1], vec2(0.5, 0.5));
> +}
> +
> +[test]
> +clear color 0.2 0.2 0.2 0.2
> +clear
> +
> +uniform int s[0].tex[1] 0
> +uniform int s[1].tex[1] 1
> +uniform int s[2].tex[1] 2
> +uniform int s[3].tex[1] 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/fs-struct-nonconst-sampler-nonconst.shader_test b/tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/fs-struct-nonconst-sampler-nonconst.shader_test
> new file mode 100644
> index 0000000..88310ab
> --- /dev/null
> +++ b/tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/fs-struct-nonconst-sampler-nonconst.shader_test
> @@ -0,0 +1,77 @@
> +# 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
> +
> +struct S {
> +   sampler2D tex[2];
> +};
> +
> +uniform S s[2];
> +
> +uniform int n;
> +uniform int m;
> +
> +out vec4 color;
> +
> +void main()
> +{
> +       color = texture(s[n].tex[m], vec2(0.5, 0.5));
> +}
> +
> +[test]
> +clear color 0.2 0.2 0.2 0.2
> +clear
> +
> +uniform int s[0].tex[0] 0
> +uniform int s[0].tex[1] 1
> +uniform int s[1].tex[0] 2
> +uniform int s[1].tex[1] 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
> +uniform int m 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 0
> +uniform int m 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 1
> +uniform int m 0
> +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 1
> +uniform int m 1
> +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-struct-nonconst-sampler.shader_test b/tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/fs-struct-nonconst-sampler.shader_test
> new file mode 100644
> index 0000000..9c6df15
> --- /dev/null
> +++ b/tests/spec/arb_gpu_shader5/execution/sampler_array_indexing/fs-struct-nonconst-sampler.shader_test
> @@ -0,0 +1,72 @@
> +# 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
> +
> +struct S {
> +   sampler2D tex;
> +};
> +
> +uniform S s[4];
> +
> +uniform int n;
> +
> +out vec4 color;
> +
> +void main()
> +{
> +       color = texture(s[n].tex, vec2(0.5, 0.5));
> +}
> +
> +[test]
> +clear color 0.2 0.2 0.2 0.2
> +clear
> +
> +uniform int s[0].tex 0
> +uniform int s[1].tex 1
> +uniform int s[2].tex 2
> +uniform int s[3].tex 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)
> --
> 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