Reviewed-by: Samuel Iglesias Gonsálvez <sigles...@igalia.com>

Thanks for writing a test for this issue,

Sam

On 20/11/15 02:23, Jordan Justen wrote:
> Signed-off-by: Jordan Justen <jordan.l.jus...@intel.com>
> Cc: Kristian Høgsberg <k...@bitplanet.net>
> Cc: Samuel Iglesias Gonsalvez <sigles...@igalia.com>
> Cc: Iago Toral Quiroga <ito...@igalia.com>
> ---
>  This fails to link on i965.
> 
>  .../execution/large-field-copy.shader_test         | 66 
> ++++++++++++++++++++++
>  1 file changed, 66 insertions(+)
>  create mode 100644 
> tests/spec/arb_shader_storage_buffer_object/execution/large-field-copy.shader_test
> 
> diff --git 
> a/tests/spec/arb_shader_storage_buffer_object/execution/large-field-copy.shader_test
>  
> b/tests/spec/arb_shader_storage_buffer_object/execution/large-field-copy.shader_test
> new file mode 100644
> index 0000000..a949507
> --- /dev/null
> +++ 
> b/tests/spec/arb_shader_storage_buffer_object/execution/large-field-copy.shader_test
> @@ -0,0 +1,66 @@
> +# Test that a 'large' field of an SSBO can be copied.
> +
> +[require]
> +GL >= 3.3
> +GLSL >= 3.30
> +GL_ARB_shader_storage_buffer_object
> +
> +[vertex shader passthrough]
> +
> +[fragment shader]
> +#version 330
> +#extension GL_ARB_shader_storage_buffer_object: require
> +
> +#define SIZE 16
> +
> +layout (std430) buffer SSBO {
> +    mat4 m1[SIZE];
> +    mat4 m2[SIZE];
> +};
> +
> +out vec4 color;
> +
> +uniform uint mode;
> +
> +void main() {
> +    bool pass = true;
> +    int i;
> +
> +    switch (mode) {
> +    case 0u:
> +        for (i = 0; i < SIZE; i++) {
> +         m1[i] = mat4(vec4(i + 0), vec4(i + 1),
> +                      vec4(i + 2), vec4(i + 3));
> +     }
> +     break;
> +    case 1u:
> +        m2 = m1;
> +     break;
> +    case 2u:
> +        for (i = 0; i < SIZE; i++) {
> +         pass = pass && (m2[i] == mat4(vec4(i + 0), vec4(i + 1),
> +                                       vec4(i + 2), vec4(i + 3)));
> +     }
> +     break;
> +    }
> +
> +    if (pass)
> +        color = vec4(0.0, 1.0, 0.0, 1.0);
> +    else
> +        color = vec4(1.0, 0.0, 0.0, 1.0);
> +}
> +
> +[test]
> +ssbo 2048
> +
> +uniform uint mode 0
> +draw rect -1 -1 2 2
> +probe all rgba 0.0 1.0 0.0 1.0
> +
> +uniform uint mode 1
> +draw rect -1 -1 2 2
> +probe all rgba 0.0 1.0 0.0 1.0
> +
> +uniform uint mode 2
> +draw rect -1 -1 2 2
> +probe all rgba 0.0 1.0 0.0 1.0
> 
_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to