struct B has a size of 52. Interface packing layout qualifier std430 says that the array of structures are not rounded up a multiple of the base alignment of a vec4 but to the next multiple of the base alignment of the structure.
The base alignment of a structure is N, where N is the largest base alignment value of any of its members. In this case the largest base alignment is 8 (which is mat2's base alignment following std430 rules), so 52 is rounded up to 56, not to 64. Tested on NVIDIA proprietary driver version 352.21. Signed-off-by: Samuel Iglesias Gonsalvez <[email protected]> --- tests/spec/arb_shader_storage_buffer_object/program-interface-query.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/spec/arb_shader_storage_buffer_object/program-interface-query.c b/tests/spec/arb_shader_storage_buffer_object/program-interface-query.c index 2044898..68cbbff 100644 --- a/tests/spec/arb_shader_storage_buffer_object/program-interface-query.c +++ b/tests/spec/arb_shader_storage_buffer_object/program-interface-query.c @@ -110,7 +110,7 @@ piglit_init(int argc, char **argv) const int expected_std140[NUM_QUERIES] = { 0, 112, GL_FLOAT_MAT2, 3, 0, 16, 32, 16, 1, 1, 0 }; const int expected_std430[NUM_QUERIES] = - { 2, 64, GL_FLOAT_MAT2, 3, 2, 16, 16, 8, 0, 0, 1 }; + { 2, 56, GL_FLOAT_MAT2, 3, 2, 16, 16, 8, 0, 0, 1 }; int i; piglit_require_extension("GL_ARB_shader_storage_buffer_object"); -- 2.1.4 _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
