[Piglit] [PATCH] arb_gpu_shader5: Add meaner d/u ubo array tests using two arrays

Ilia Mirkin imirkin at alum.mit.edu
Sat Jul 19 18:33:13 PDT 2014


On Sat, Jul 19, 2014 at 9:33 PM, Chris Forbes <chrisf at ijw.co.nz> wrote:
> This ensures that the block index of the base of the array is correctly
> taken into account, along with just being a little more stressful.
>
> Signed-off-by: Chris Forbes <chrisf at ijw.co.nz>

This, and your previous series,

Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>

> ---
>  .../ubo_array_indexing/fs-two-arrays.shader_test   | 200 +++++++++++++++++++
>  .../ubo_array_indexing/gs-two-arrays.shader_test   | 218 +++++++++++++++++++++
>  .../ubo_array_indexing/vs-two-arrays.shader_test   | 211 ++++++++++++++++++++
>  3 files changed, 629 insertions(+)
>  create mode 100644 tests/spec/arb_gpu_shader5/execution/ubo_array_indexing/fs-two-arrays.shader_test
>  create mode 100644 tests/spec/arb_gpu_shader5/execution/ubo_array_indexing/gs-two-arrays.shader_test
>  create mode 100644 tests/spec/arb_gpu_shader5/execution/ubo_array_indexing/vs-two-arrays.shader_test
>
> diff --git a/tests/spec/arb_gpu_shader5/execution/ubo_array_indexing/fs-two-arrays.shader_test b/tests/spec/arb_gpu_shader5/execution/ubo_array_indexing/fs-two-arrays.shader_test
> new file mode 100644
> index 0000000..2ae03e4
> --- /dev/null
> +++ b/tests/spec/arb_gpu_shader5/execution/ubo_array_indexing/fs-two-arrays.shader_test
> @@ -0,0 +1,200 @@
> +# This test verifies that dynamically uniform indexing of UBO arrays
> +# in the fragment shader behaves correctly, with two separate arrays.
> +
> +[require]
> +GLSL >= 1.50
> +GL_ARB_gpu_shader5
> +
> +[vertex shader passthrough]
> +
> +[fragment shader]
> +#version 150
> +#extension GL_ARB_gpu_shader5: require
> +
> +uniform r_values {
> +       float val;
> +} r_arr[5];
> +
> +uniform g_values {
> +       float val;
> +} g_arr[5];
> +
> +uniform int n;
> +uniform int m;
> +
> +out vec4 color;
> +
> +void main()
> +{
> +       color.x = r_arr[n].val;
> +       color.y = g_arr[m].val;
> +       color.z = 0.0;
> +       color.w = 0.0;
> +}
> +
> +[test]
> +clear color 0.2 0.2 0.2 0.2
> +clear
> +
> +ubo array index 0
> +uniform float r_values.val 0.0
> +uniform float g_values.val 1.0
> +
> +ubo array index 1
> +uniform float r_values.val 0.2
> +uniform float g_values.val 0.8
> +
> +ubo array index 2
> +uniform float r_values.val 0.4
> +uniform float g_values.val 0.6
> +
> +ubo array index 3
> +uniform float r_values.val 0.6
> +uniform float g_values.val 0.4
> +
> +ubo array index 4
> +uniform float r_values.val 0.8
> +uniform float g_values.val 0.2
> +
> +
> +
> +uniform int m 0
> +uniform int n 0
> +draw rect -1 -1 0.4 0.4
> +
> +relative probe rect rgb (0.0, 0.0, 0.2, 0.2) (0.0, 1.0, 0.0)
> +
> +uniform int n 1
> +draw rect -0.6 -1 0.4 0.4
> +
> +relative probe rect rgb (0.2, 0.0, 0.2, 0.2) (0.2, 1.0, 0.0)
> +
> +uniform int n 2
> +draw rect -0.2 -1 0.4 0.4
> +
> +relative probe rect rgb (0.4, 0.0, 0.2, 0.2) (0.4, 1.0, 0.0)
> +
> +uniform int n 3
> +draw rect 0.2 -1 0.4 0.4
> +
> +relative probe rect rgb (0.6, 0.0, 0.2, 0.2) (0.6, 1.0, 0.0)
> +
> +uniform int n 4
> +draw rect 0.6 -1 0.4 0.4
> +
> +relative probe rect rgb (0.8, 0.0, 0.2, 0.2) (0.8, 1.0, 0.0)
> +
> +
> +
> +
> +uniform int m 1
> +uniform int n 0
> +draw rect -1 -0.6 0.4 0.4
> +
> +relative probe rect rgb (0.0, 0.2, 0.2, 0.2) (0.0, 0.8, 0.0)
> +
> +uniform int n 1
> +draw rect -0.6 -0.6 0.4 0.4
> +
> +relative probe rect rgb (0.2, 0.2, 0.2, 0.2) (0.2, 0.8, 0.0)
> +
> +uniform int n 2
> +draw rect -0.2 -0.6 0.4 0.4
> +
> +relative probe rect rgb (0.4, 0.2, 0.2, 0.2) (0.4, 0.8, 0.0)
> +
> +uniform int n 3
> +draw rect 0.2 -0.6 0.4 0.4
> +
> +relative probe rect rgb (0.6, 0.2, 0.2, 0.2) (0.6, 0.8, 0.0)
> +
> +uniform int n 4
> +draw rect 0.6 -0.6 0.4 0.4
> +
> +relative probe rect rgb (0.8, 0.2, 0.2, 0.2) (0.8, 0.8, 0.0)
> +
> +
> +
> +
> +uniform int m 2
> +uniform int n 0
> +draw rect -1 -0.2 0.4 0.4
> +
> +relative probe rect rgb (0.0, 0.4, 0.2, 0.2) (0.0, 0.6, 0.0)
> +
> +uniform int n 1
> +draw rect -0.6 -0.2 0.4 0.4
> +
> +relative probe rect rgb (0.2, 0.4, 0.2, 0.2) (0.2, 0.6, 0.0)
> +
> +uniform int n 2
> +draw rect -0.2 -0.2 0.4 0.4
> +
> +relative probe rect rgb (0.4, 0.4, 0.2, 0.2) (0.4, 0.6, 0.0)
> +
> +uniform int n 3
> +draw rect 0.2 -0.2 0.4 0.4
> +
> +relative probe rect rgb (0.6, 0.4, 0.2, 0.2) (0.6, 0.6, 0.0)
> +
> +uniform int n 4
> +draw rect 0.6 -0.2 0.4 0.4
> +
> +relative probe rect rgb (0.8, 0.4, 0.2, 0.2) (0.8, 0.6, 0.0)
> +
> +
> +
> +uniform int m 3
> +uniform int n 0
> +draw rect -1 0.2 0.4 0.4
> +
> +relative probe rect rgb (0.0, 0.6, 0.2, 0.2) (0.0, 0.4, 0.0)
> +
> +uniform int n 1
> +draw rect -0.6 0.2 0.4 0.4
> +
> +relative probe rect rgb (0.2, 0.6, 0.2, 0.2) (0.2, 0.4, 0.0)
> +
> +uniform int n 2
> +draw rect -0.2 0.2 0.4 0.4
> +
> +relative probe rect rgb (0.4, 0.6, 0.2, 0.2) (0.4, 0.4, 0.0)
> +
> +uniform int n 3
> +draw rect 0.2 0.2 0.4 0.4
> +
> +relative probe rect rgb (0.6, 0.6, 0.2, 0.2) (0.6, 0.4, 0.0)
> +
> +uniform int n 4
> +draw rect 0.6 0.2 0.4 0.4
> +
> +relative probe rect rgb (0.8, 0.6, 0.2, 0.2) (0.8, 0.4, 0.0)
> +
> +
> +
> +uniform int m 4
> +uniform int n 0
> +draw rect -1 0.6 0.4 0.4
> +
> +relative probe rect rgb (0.0, 0.8, 0.2, 0.2) (0.0, 0.2, 0.0)
> +
> +uniform int n 1
> +draw rect -0.6 0.6 0.4 0.4
> +
> +relative probe rect rgb (0.2, 0.8, 0.2, 0.2) (0.2, 0.2, 0.0)
> +
> +uniform int n 2
> +draw rect -0.2 0.6 0.4 0.4
> +
> +relative probe rect rgb (0.4, 0.8, 0.2, 0.2) (0.4, 0.2, 0.0)
> +
> +uniform int n 3
> +draw rect 0.2 0.6 0.4 0.4
> +
> +relative probe rect rgb (0.6, 0.8, 0.2, 0.2) (0.6, 0.2, 0.0)
> +
> +uniform int n 4
> +draw rect 0.6 0.6 0.4 0.4
> +
> +relative probe rect rgb (0.8, 0.8, 0.2, 0.2) (0.8, 0.2, 0.0)
> +
> diff --git a/tests/spec/arb_gpu_shader5/execution/ubo_array_indexing/gs-two-arrays.shader_test b/tests/spec/arb_gpu_shader5/execution/ubo_array_indexing/gs-two-arrays.shader_test
> new file mode 100644
> index 0000000..4e25853
> --- /dev/null
> +++ b/tests/spec/arb_gpu_shader5/execution/ubo_array_indexing/gs-two-arrays.shader_test
> @@ -0,0 +1,218 @@
> +# This test verifies that dynamically uniform indexing of UBO arrays
> +# in the geometry shader behaves correctly, with two separate arrays.
> +
> +[require]
> +GLSL >= 1.50
> +GL_ARB_gpu_shader5
> +
> +[vertex shader passthrough]
> +
> +[geometry shader]
> +#version 150
> +#extension GL_ARB_gpu_shader5: require
> +
> +uniform r_values {
> +       float val;
> +} r_arr[5];
> +
> +uniform g_values {
> +       float val;
> +} g_arr[5];
> +
> +uniform int n;
> +uniform int m;
> +
> +layout(triangles) in;
> +layout(triangle_strip, max_vertices=3) out;
> +out vec4 color;
> +
> +void main()
> +{
> +       for (int i = 0; i < 3; i++) {
> +               gl_Position = gl_in[i].gl_Position;
> +               color.x = r_arr[n].val;
> +               color.y = g_arr[m].val;
> +               color.z = 0.0;
> +               color.w = 0.0;
> +               EmitVertex();
> +       }
> +       EndPrimitive();
> +}
> +
> +[fragment shader]
> +#version 150
> +
> +in vec4 color;
> +out vec4 out_color;
> +
> +void main()
> +{
> +       out_color = color;
> +}
> +
> +[test]
> +clear color 0.2 0.2 0.2 0.2
> +clear
> +
> +ubo array index 0
> +uniform float r_values.val 0.0
> +uniform float g_values.val 1.0
> +
> +ubo array index 1
> +uniform float r_values.val 0.2
> +uniform float g_values.val 0.8
> +
> +ubo array index 2
> +uniform float r_values.val 0.4
> +uniform float g_values.val 0.6
> +
> +ubo array index 3
> +uniform float r_values.val 0.6
> +uniform float g_values.val 0.4
> +
> +ubo array index 4
> +uniform float r_values.val 0.8
> +uniform float g_values.val 0.2
> +
> +
> +
> +uniform int m 0
> +uniform int n 0
> +draw rect -1 -1 0.4 0.4
> +
> +relative probe rect rgb (0.0, 0.0, 0.2, 0.2) (0.0, 1.0, 0.0)
> +
> +uniform int n 1
> +draw rect -0.6 -1 0.4 0.4
> +
> +relative probe rect rgb (0.2, 0.0, 0.2, 0.2) (0.2, 1.0, 0.0)
> +
> +uniform int n 2
> +draw rect -0.2 -1 0.4 0.4
> +
> +relative probe rect rgb (0.4, 0.0, 0.2, 0.2) (0.4, 1.0, 0.0)
> +
> +uniform int n 3
> +draw rect 0.2 -1 0.4 0.4
> +
> +relative probe rect rgb (0.6, 0.0, 0.2, 0.2) (0.6, 1.0, 0.0)
> +
> +uniform int n 4
> +draw rect 0.6 -1 0.4 0.4
> +
> +relative probe rect rgb (0.8, 0.0, 0.2, 0.2) (0.8, 1.0, 0.0)
> +
> +
> +
> +
> +uniform int m 1
> +uniform int n 0
> +draw rect -1 -0.6 0.4 0.4
> +
> +relative probe rect rgb (0.0, 0.2, 0.2, 0.2) (0.0, 0.8, 0.0)
> +
> +uniform int n 1
> +draw rect -0.6 -0.6 0.4 0.4
> +
> +relative probe rect rgb (0.2, 0.2, 0.2, 0.2) (0.2, 0.8, 0.0)
> +
> +uniform int n 2
> +draw rect -0.2 -0.6 0.4 0.4
> +
> +relative probe rect rgb (0.4, 0.2, 0.2, 0.2) (0.4, 0.8, 0.0)
> +
> +uniform int n 3
> +draw rect 0.2 -0.6 0.4 0.4
> +
> +relative probe rect rgb (0.6, 0.2, 0.2, 0.2) (0.6, 0.8, 0.0)
> +
> +uniform int n 4
> +draw rect 0.6 -0.6 0.4 0.4
> +
> +relative probe rect rgb (0.8, 0.2, 0.2, 0.2) (0.8, 0.8, 0.0)
> +
> +
> +
> +
> +uniform int m 2
> +uniform int n 0
> +draw rect -1 -0.2 0.4 0.4
> +
> +relative probe rect rgb (0.0, 0.4, 0.2, 0.2) (0.0, 0.6, 0.0)
> +
> +uniform int n 1
> +draw rect -0.6 -0.2 0.4 0.4
> +
> +relative probe rect rgb (0.2, 0.4, 0.2, 0.2) (0.2, 0.6, 0.0)
> +
> +uniform int n 2
> +draw rect -0.2 -0.2 0.4 0.4
> +
> +relative probe rect rgb (0.4, 0.4, 0.2, 0.2) (0.4, 0.6, 0.0)
> +
> +uniform int n 3
> +draw rect 0.2 -0.2 0.4 0.4
> +
> +relative probe rect rgb (0.6, 0.4, 0.2, 0.2) (0.6, 0.6, 0.0)
> +
> +uniform int n 4
> +draw rect 0.6 -0.2 0.4 0.4
> +
> +relative probe rect rgb (0.8, 0.4, 0.2, 0.2) (0.8, 0.6, 0.0)
> +
> +
> +
> +uniform int m 3
> +uniform int n 0
> +draw rect -1 0.2 0.4 0.4
> +
> +relative probe rect rgb (0.0, 0.6, 0.2, 0.2) (0.0, 0.4, 0.0)
> +
> +uniform int n 1
> +draw rect -0.6 0.2 0.4 0.4
> +
> +relative probe rect rgb (0.2, 0.6, 0.2, 0.2) (0.2, 0.4, 0.0)
> +
> +uniform int n 2
> +draw rect -0.2 0.2 0.4 0.4
> +
> +relative probe rect rgb (0.4, 0.6, 0.2, 0.2) (0.4, 0.4, 0.0)
> +
> +uniform int n 3
> +draw rect 0.2 0.2 0.4 0.4
> +
> +relative probe rect rgb (0.6, 0.6, 0.2, 0.2) (0.6, 0.4, 0.0)
> +
> +uniform int n 4
> +draw rect 0.6 0.2 0.4 0.4
> +
> +relative probe rect rgb (0.8, 0.6, 0.2, 0.2) (0.8, 0.4, 0.0)
> +
> +
> +
> +uniform int m 4
> +uniform int n 0
> +draw rect -1 0.6 0.4 0.4
> +
> +relative probe rect rgb (0.0, 0.8, 0.2, 0.2) (0.0, 0.2, 0.0)
> +
> +uniform int n 1
> +draw rect -0.6 0.6 0.4 0.4
> +
> +relative probe rect rgb (0.2, 0.8, 0.2, 0.2) (0.2, 0.2, 0.0)
> +
> +uniform int n 2
> +draw rect -0.2 0.6 0.4 0.4
> +
> +relative probe rect rgb (0.4, 0.8, 0.2, 0.2) (0.4, 0.2, 0.0)
> +
> +uniform int n 3
> +draw rect 0.2 0.6 0.4 0.4
> +
> +relative probe rect rgb (0.6, 0.8, 0.2, 0.2) (0.6, 0.2, 0.0)
> +
> +uniform int n 4
> +draw rect 0.6 0.6 0.4 0.4
> +
> +relative probe rect rgb (0.8, 0.8, 0.2, 0.2) (0.8, 0.2, 0.0)
> +
> diff --git a/tests/spec/arb_gpu_shader5/execution/ubo_array_indexing/vs-two-arrays.shader_test b/tests/spec/arb_gpu_shader5/execution/ubo_array_indexing/vs-two-arrays.shader_test
> new file mode 100644
> index 0000000..8133b94
> --- /dev/null
> +++ b/tests/spec/arb_gpu_shader5/execution/ubo_array_indexing/vs-two-arrays.shader_test
> @@ -0,0 +1,211 @@
> +# This test verifies that dynamically uniform indexing of UBO arrays
> +# in the vertex shader behaves correctly, with two separate arrays.
> +
> +[require]
> +GLSL >= 1.50
> +GL_ARB_gpu_shader5
> +
> +[vertex shader]
> +#version 150
> +#extension GL_ARB_gpu_shader5: require
> +
> +uniform r_values {
> +       float val;
> +} r_arr[5];
> +
> +uniform g_values {
> +       float val;
> +} g_arr[5];
> +
> +uniform int n;
> +uniform int m;
> +
> +in vec4 piglit_vertex;
> +out vec4 color;
> +
> +void main()
> +{
> +       gl_Position = piglit_vertex;
> +       color.x = r_arr[n].val;
> +       color.y = g_arr[m].val;
> +       color.z = 0.0;
> +       color.w = 0.0;
> +}
> +
> +[fragment shader]
> +#version 150
> +
> +in vec4 color;
> +out vec4 out_color;
> +
> +void main()
> +{
> +       out_color = color;
> +}
> +
> +[test]
> +clear color 0.2 0.2 0.2 0.2
> +clear
> +
> +ubo array index 0
> +uniform float r_values.val 0.0
> +uniform float g_values.val 1.0
> +
> +ubo array index 1
> +uniform float r_values.val 0.2
> +uniform float g_values.val 0.8
> +
> +ubo array index 2
> +uniform float r_values.val 0.4
> +uniform float g_values.val 0.6
> +
> +ubo array index 3
> +uniform float r_values.val 0.6
> +uniform float g_values.val 0.4
> +
> +ubo array index 4
> +uniform float r_values.val 0.8
> +uniform float g_values.val 0.2
> +
> +
> +
> +uniform int m 0
> +uniform int n 0
> +draw rect -1 -1 0.4 0.4
> +
> +relative probe rect rgb (0.0, 0.0, 0.2, 0.2) (0.0, 1.0, 0.0)
> +
> +uniform int n 1
> +draw rect -0.6 -1 0.4 0.4
> +
> +relative probe rect rgb (0.2, 0.0, 0.2, 0.2) (0.2, 1.0, 0.0)
> +
> +uniform int n 2
> +draw rect -0.2 -1 0.4 0.4
> +
> +relative probe rect rgb (0.4, 0.0, 0.2, 0.2) (0.4, 1.0, 0.0)
> +
> +uniform int n 3
> +draw rect 0.2 -1 0.4 0.4
> +
> +relative probe rect rgb (0.6, 0.0, 0.2, 0.2) (0.6, 1.0, 0.0)
> +
> +uniform int n 4
> +draw rect 0.6 -1 0.4 0.4
> +
> +relative probe rect rgb (0.8, 0.0, 0.2, 0.2) (0.8, 1.0, 0.0)
> +
> +
> +
> +
> +uniform int m 1
> +uniform int n 0
> +draw rect -1 -0.6 0.4 0.4
> +
> +relative probe rect rgb (0.0, 0.2, 0.2, 0.2) (0.0, 0.8, 0.0)
> +
> +uniform int n 1
> +draw rect -0.6 -0.6 0.4 0.4
> +
> +relative probe rect rgb (0.2, 0.2, 0.2, 0.2) (0.2, 0.8, 0.0)
> +
> +uniform int n 2
> +draw rect -0.2 -0.6 0.4 0.4
> +
> +relative probe rect rgb (0.4, 0.2, 0.2, 0.2) (0.4, 0.8, 0.0)
> +
> +uniform int n 3
> +draw rect 0.2 -0.6 0.4 0.4
> +
> +relative probe rect rgb (0.6, 0.2, 0.2, 0.2) (0.6, 0.8, 0.0)
> +
> +uniform int n 4
> +draw rect 0.6 -0.6 0.4 0.4
> +
> +relative probe rect rgb (0.8, 0.2, 0.2, 0.2) (0.8, 0.8, 0.0)
> +
> +
> +
> +
> +uniform int m 2
> +uniform int n 0
> +draw rect -1 -0.2 0.4 0.4
> +
> +relative probe rect rgb (0.0, 0.4, 0.2, 0.2) (0.0, 0.6, 0.0)
> +
> +uniform int n 1
> +draw rect -0.6 -0.2 0.4 0.4
> +
> +relative probe rect rgb (0.2, 0.4, 0.2, 0.2) (0.2, 0.6, 0.0)
> +
> +uniform int n 2
> +draw rect -0.2 -0.2 0.4 0.4
> +
> +relative probe rect rgb (0.4, 0.4, 0.2, 0.2) (0.4, 0.6, 0.0)
> +
> +uniform int n 3
> +draw rect 0.2 -0.2 0.4 0.4
> +
> +relative probe rect rgb (0.6, 0.4, 0.2, 0.2) (0.6, 0.6, 0.0)
> +
> +uniform int n 4
> +draw rect 0.6 -0.2 0.4 0.4
> +
> +relative probe rect rgb (0.8, 0.4, 0.2, 0.2) (0.8, 0.6, 0.0)
> +
> +
> +
> +uniform int m 3
> +uniform int n 0
> +draw rect -1 0.2 0.4 0.4
> +
> +relative probe rect rgb (0.0, 0.6, 0.2, 0.2) (0.0, 0.4, 0.0)
> +
> +uniform int n 1
> +draw rect -0.6 0.2 0.4 0.4
> +
> +relative probe rect rgb (0.2, 0.6, 0.2, 0.2) (0.2, 0.4, 0.0)
> +
> +uniform int n 2
> +draw rect -0.2 0.2 0.4 0.4
> +
> +relative probe rect rgb (0.4, 0.6, 0.2, 0.2) (0.4, 0.4, 0.0)
> +
> +uniform int n 3
> +draw rect 0.2 0.2 0.4 0.4
> +
> +relative probe rect rgb (0.6, 0.6, 0.2, 0.2) (0.6, 0.4, 0.0)
> +
> +uniform int n 4
> +draw rect 0.6 0.2 0.4 0.4
> +
> +relative probe rect rgb (0.8, 0.6, 0.2, 0.2) (0.8, 0.4, 0.0)
> +
> +
> +
> +uniform int m 4
> +uniform int n 0
> +draw rect -1 0.6 0.4 0.4
> +
> +relative probe rect rgb (0.0, 0.8, 0.2, 0.2) (0.0, 0.2, 0.0)
> +
> +uniform int n 1
> +draw rect -0.6 0.6 0.4 0.4
> +
> +relative probe rect rgb (0.2, 0.8, 0.2, 0.2) (0.2, 0.2, 0.0)
> +
> +uniform int n 2
> +draw rect -0.2 0.6 0.4 0.4
> +
> +relative probe rect rgb (0.4, 0.8, 0.2, 0.2) (0.4, 0.2, 0.0)
> +
> +uniform int n 3
> +draw rect 0.2 0.6 0.4 0.4
> +
> +relative probe rect rgb (0.6, 0.8, 0.2, 0.2) (0.6, 0.2, 0.0)
> +
> +uniform int n 4
> +draw rect 0.6 0.6 0.4 0.4
> +
> +relative probe rect rgb (0.8, 0.8, 0.2, 0.2) (0.8, 0.2, 0.0)
> +
> --
> 2.0.1
>
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/piglit


More information about the Piglit mailing list