I think I have found a driver bug.
Code :struct Type { ivec2 member0; }; layout(std140, binding = 0) buffer Buffer { int data0; // offset 0 Type data1; // BUG: offset is 8 but should be 16 } g_buffer;
Furthermore, in the following (std430) block dvec3 has base alignment 16 not 32 as it should.
Code :layout(std430, binding = 0) buffer Input0 { int data0; float data1[5]; mat3x2 data2; double data3; double data4[2]; int data5; dvec3 data6; // BUG: offset is 80 but should be 96 } g_input0;
Thanks.



Reply With Quote