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 <[email protected]> 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 <[email protected]> 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 >> > [email protected] >> > http://lists.freedesktop.org/mailman/listinfo/piglit > > > _______________________________________________ > Piglit mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/piglit _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
