On Wed, 2015-10-07 at 09:21 +0200, Samuel Iglesias Gonsalvez wrote: > It doesn't round up to vec4 size. > > Fixes 15 dEQP tests: > > dEQP > -GLES31.functional.ssbo.layout.single_basic_type.std430.row_major_low > p_mat2 > dEQP > -GLES31.functional.ssbo.layout.single_basic_type.std430.row_major_med > iump_mat2 > dEQP > -GLES31.functional.ssbo.layout.single_basic_type.std430.row_major_hig > hp_mat2 > dEQP > -GLES31.functional.ssbo.layout.single_basic_type.std430.row_major_low > p_mat2x3 > dEQP > -GLES31.functional.ssbo.layout.single_basic_type.std430.row_major_med > iump_mat2x3 > dEQP > -GLES31.functional.ssbo.layout.single_basic_type.std430.row_major_hig > hp_mat2x3 > dEQP > -GLES31.functional.ssbo.layout.single_basic_type.std430.row_major_low > p_mat2x4 > dEQP > -GLES31.functional.ssbo.layout.single_basic_type.std430.row_major_med > iump_mat2x4 > dEQP > -GLES31.functional.ssbo.layout.single_basic_type.std430.row_major_hig > hp_mat2x4 > dEQP > -GLES31.functional.ssbo.layout.single_basic_array.std430.row_major_ma > t2 > dEQP > -GLES31.functional.ssbo.layout.single_basic_array.std430.row_major_ma > t2x3 > dEQP > -GLES31.functional.ssbo.layout.single_basic_array.std430.row_major_ma > t2x4 > dEQP > -GLES31.functional.ssbo.layout.instance_array_basic_type.std430.row_m > ajor_mat2 > dEQP > -GLES31.functional.ssbo.layout.instance_array_basic_type.std430.row_m > ajor_mat2x3 > dEQP > -GLES31.functional.ssbo.layout.instance_array_basic_type.std430.row_m > ajor_mat2x4 > > Signed-off-by: Samuel Iglesias Gonsalvez <sigles...@igalia.com> > --- > src/glsl/lower_ubo_reference.cpp | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/src/glsl/lower_ubo_reference.cpp > b/src/glsl/lower_ubo_reference.cpp > index 247620e..183435e 100644 > --- a/src/glsl/lower_ubo_reference.cpp > +++ b/src/glsl/lower_ubo_reference.cpp > @@ -744,7 +744,14 @@ lower_ubo_reference_visitor::emit_access(bool > is_write, > * or 32 depending on the number of columns. > */ > assert(matrix_columns <= 4); > - unsigned matrix_stride = glsl_align(matrix_columns * N, 16); > + unsigned matrix_stride = 0; > + /* matrix stride for std430 mat2xY matrices are not rounded up > to > + * vec4 size. > + */
Is there a spec quote you can use here with section number spec version etc? > + if (packing == GLSL_INTERFACE_PACKING_STD430 && matrix_columns > == 2) > + matrix_stride = 2 * N; > + else > + matrix_stride = glsl_align(matrix_columns * N, 16); > > const glsl_type *deref_type = deref->type->base_type == > GLSL_TYPE_FLOAT ? > glsl_type::float_type : glsl_type::double_type; _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev