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 -- 2.6.2 _______________________________________________ Piglit mailing list Piglit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/piglit