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

Ilia Mirkin imirkin at alum.mit.edu
Tue Jun 16 06:22:50 PDT 2015


BTW, Tim, any reason you only did fs? The reason I ask is that it
fails on i965 without nir, which is what vs/gs uses. [And I happened
to copy that approach in st/mesa, so this doesn't work in gallium
either... maybe having a failing piglit on i965 will cause the intel
folk to figure out how to properly fix it... and I can copy again ;) ]

On Tue, Jun 16, 2015 at 6:50 AM, Timothy Arceri <t_arceri at yahoo.com.au> wrote:
> Hi Neil,
>
> No problem. I'll update the tests give them a run on Nvidia and cc you
> in on the patch.
>
> Tim
>
> On Mon, 2015-06-15 at 16:06 +0100, Neil Roberts wrote:
>> Hi,
>>
>> I've just pushed this patch which changes the other
>> sampler_array_indexing tests so that the textures are not just a solid
>> colour. The idea is that that way it will ensure that the texture
>> coordinates are being used correctly.
>>
>> http://cgit.freedesktop.org/piglit/commit/?id=4f9caf084eda7353af7bbe2
>>
>> I originally made the patch before your commit was pushed so I didn't
>> modify your tests. Would you want to modify your tests as well so that
>> they match? I didn't want to do this myself because the new tests seem to be
>> failing with Mesa i965 and I don't have a suitable NVIDIA card handy to
>> test it with.
>>
>> Regards,
>> - Neil
>>
>> Timothy Arceri <t_arceri at yahoo.com.au> writes:
>>
>> > 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
>
>
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/piglit


More information about the Piglit mailing list