Message ID | 1433384923-10715-1-git-send-email-t_arceri@yahoo.com.au |
---|---|
State | New |
Headers | show |
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@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@lists.freedesktop.org > > http://lists.freedesktop.org/mailman/listinfo/piglit
Hi Ilia, I only did fs as it satisfied what I was trying to show. I found this issue while working on arrays of arrays support. The tests also fail for nir on i965, I was also hoping someone might take a look at the failing tests before I got around to adding the arrays of array support. I've just about got a working ES version of arrays of arrays ready to submit the only part which I know isn't working for this cut down version of the extension is the various sampler indirect support so I may end up having to look into it. That said I guess it probably makes sense to add some tests for the other shaders ... I'll add it to my todo list. On Tue, 2015-06-16 at 09:22 -0400, Ilia Mirkin wrote: > 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@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@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@lists.freedesktop.org > >> > http://lists.freedesktop.org/mailman/listinfo/piglit > > > > > > _______________________________________________ > > Piglit mailing list > > Piglit@lists.freedesktop.org > > http://lists.freedesktop.org/mailman/listinfo/piglit
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)