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

Reply via email to