[Piglit] [PATCH 3/3] ext_texture_array: add simple 1D/2D array rendering tests
Ilia Mirkin
imirkin at alum.mit.edu
Thu Aug 7 10:43:01 PDT 2014
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 <brianp at vmware.com> 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
> Piglit at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/piglit
More information about the Piglit
mailing list