Can I assume that you tested this on llvmpipe and it worked? I'm getting failures on render-1darray with nvc0, whereby layers 1+ are random data, but we pass all the regular texture lookup tests...
On Fri, Aug 1, 2014 at 11:07 AM, Brian Paul <[email protected]> wrote: > Check that we're sampling from the expected array slices. > --- > .../render-1darray-1slice.shader_test | 35 +++++++++++++++ > .../ext_texture_array/render-1darray.shader_test | 45 > ++++++++++++++++++++ > .../render-2darray-1slice.shader_test | 34 +++++++++++++++ > .../ext_texture_array/render-2darray.shader_test | 44 +++++++++++++++++++ > 4 files changed, 158 insertions(+) > create mode 100644 > tests/spec/ext_texture_array/render-1darray-1slice.shader_test > create mode 100644 tests/spec/ext_texture_array/render-1darray.shader_test > create mode 100644 > tests/spec/ext_texture_array/render-2darray-1slice.shader_test > create mode 100644 tests/spec/ext_texture_array/render-2darray.shader_test > > diff --git a/tests/spec/ext_texture_array/render-1darray-1slice.shader_test > b/tests/spec/ext_texture_array/render-1darray-1slice.shader_test > new file mode 100644 > index 0000000..f524c06 > --- /dev/null > +++ b/tests/spec/ext_texture_array/render-1darray-1slice.shader_test > @@ -0,0 +1,35 @@ > +# Test GL_TEXTURE_1D_ARRAY texture with just one layer > +[require] > +GLSL >= 1.10 > +GL_EXT_texture_array > + > +[vertex shader] > +#version 110 > +varying vec4 texcoords; > +void main() { > + gl_Position = gl_Vertex; > + texcoords = (gl_Vertex + 1.0) / 2.0; > +} > + > +[fragment shader] > +#version 110 > +#extension GL_EXT_texture_array : enable > +varying vec4 texcoords; > +uniform sampler1DArray tex; > +uniform float layer; > + > +void main() > +{ > + vec2 p = vec2(texcoords.x, layer); > + gl_FragColor = texture1DArray(tex, p); > +} > + > +[test] > +uniform int tex 0 > +texture rgbw 1DArray 0 ( 64 , 1 ) > + > +# layer=12 should get clamped to zero > +uniform float layer 12 > +draw rect -1 -1 2 2 > +relative probe rgba (0.5, 0.5) (1.0, 0.0, 0.0, 1.0) > + > diff --git a/tests/spec/ext_texture_array/render-1darray.shader_test > b/tests/spec/ext_texture_array/render-1darray.shader_test > new file mode 100644 > index 0000000..74b6154 > --- /dev/null > +++ b/tests/spec/ext_texture_array/render-1darray.shader_test > @@ -0,0 +1,45 @@ > +# Test GL_TEXTURE_1D_ARRAY texture with four layers > +[require] > +GLSL >= 1.10 > +GL_EXT_texture_array > + > +[vertex shader] > +#version 110 > +varying vec4 texcoords; > +void main() { > + gl_Position = gl_Vertex; > + texcoords = (gl_Vertex + 1.0) / 2.0; > +} > + > +[fragment shader] > +#version 110 > +#extension GL_EXT_texture_array : enable > +varying vec4 texcoords; > +uniform sampler1DArray tex; > +uniform float layer; > + > +void main() > +{ > + vec2 p = vec2(texcoords.x, layer); > + gl_FragColor = texture1DArray(tex, p); > +} > + > +[test] > +uniform int tex 0 > +texture rgbw 1DArray 0 ( 64 , 4 ) > + > +uniform float layer 0 > +draw rect -1 -1 2 2 > +relative probe rgba (0.5, 0.5) (1.0, 0.0, 0.0, 1.0) > + > +uniform float layer 1 > +draw rect -1 -1 2 2 > +relative probe rgba (0.5, 0.5) (0.0, 1.0, 0.0, 1.0) > + > +uniform float layer 2 > +draw rect -1 -1 2 2 > +relative probe rgba (0.5, 0.5) (0.0, 0.0, 1.0, 1.0) > + > +uniform float layer 3 > +draw rect -1 -1 2 2 > +relative probe rgba (0.5, 0.5) (1.0, 1.0, 1.0, 1.0) > diff --git a/tests/spec/ext_texture_array/render-2darray-1slice.shader_test > b/tests/spec/ext_texture_array/render-2darray-1slice.shader_test > new file mode 100644 > index 0000000..335436d > --- /dev/null > +++ b/tests/spec/ext_texture_array/render-2darray-1slice.shader_test > @@ -0,0 +1,34 @@ > +# Test GL_TEXTURE_2D_ARRAY with just one slice > +[require] > +GLSL >= 1.10 > +GL_EXT_texture_array > + > +[vertex shader] > +#version 110 > +varying vec4 texcoords; > +void main() { > + gl_Position = gl_Vertex; > + texcoords = (gl_Vertex + 1.0) / 2.0; > +} > + > +[fragment shader] > +#version 110 > +#extension GL_EXT_texture_array : enable > +varying vec4 texcoords; > +uniform sampler2DArray tex; > +uniform float layer; > + > +void main() > +{ > + vec3 p = vec3(texcoords.xy, layer); > + gl_FragColor = texture2DArray(tex, p); > +} > + > +[test] > +uniform int tex 0 > +texture rgbw 2DArray 0 (32, 32, 1) > + > +# layer=12 should get clamped to zero > +uniform float layer 12 > +draw rect -1 -1 2 2 > +relative probe rgba (0.5, 0.5) (1.0, 0.0, 0.0, 1.0) > diff --git a/tests/spec/ext_texture_array/render-2darray.shader_test > b/tests/spec/ext_texture_array/render-2darray.shader_test > new file mode 100644 > index 0000000..189bb13 > --- /dev/null > +++ b/tests/spec/ext_texture_array/render-2darray.shader_test > @@ -0,0 +1,44 @@ > +[require] > +GLSL >= 1.10 > +GL_EXT_texture_array > + > +[vertex shader] > +#version 110 > +varying vec4 texcoords; > +void main() { > + gl_Position = gl_Vertex; > + texcoords = (gl_Vertex + 1.0) / 2.0; > +} > + > +[fragment shader] > +#version 110 > +#extension GL_EXT_texture_array : enable > +varying vec4 texcoords; > +uniform sampler2DArray tex; > +uniform float layer; > + > +void main() > +{ > + vec3 p = vec3(texcoords.xy, layer); > + gl_FragColor = texture2DArray(tex, p); > +} > + > +[test] > +uniform int tex 0 > +texture rgbw 2DArray 0 (32, 32, 4) > + > +uniform float layer 0 > +draw rect -1 -1 2 2 > +relative probe rgba (0.5, 0.5) (1.0, 0.0, 0.0, 1.0) > + > +uniform float layer 1 > +draw rect -1 -1 2 2 > +relative probe rgba (0.5, 0.5) (0.0, 1.0, 0.0, 1.0) > + > +uniform float layer 2 > +draw rect -1 -1 2 2 > +relative probe rgba (0.5, 0.5) (0.0, 0.0, 1.0, 1.0) > + > +uniform float layer 3 > +draw rect -1 -1 2 2 > +relative probe rgba (0.5, 0.5) (1.0, 1.0, 1.0, 1.0) > -- > 1.7.10.4 > > _______________________________________________ > Piglit mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/piglit _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
