The offset handling should already work for flattening to our split vars,
just need to make sure we have enough (or any!) array elements.
Fixes: #7154
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13288>
new_var->xy->type = glsl_dvec_type(2);
new_var->zw->type = glsl_dvec_type(old_components - 2);
- if (glsl_type_is_array(old_var->type)) {
- unsigned array_size = glsl_get_aoa_size(old_var->type);
+ if (glsl_type_is_array_or_matrix(old_var->type)) {
+ const struct glsl_type *element_type = glsl_without_array(old_var->type);
+ unsigned array_size = glsl_get_aoa_size(old_var->type) * glsl_get_matrix_columns(element_type);
new_var->xy->type = glsl_array_type(new_var->xy->type,
array_size, 0);
new_var->zw->type = glsl_array_type(new_var->zw->type,
# https://gitlab.freedesktop.org/mesa/mesa/-/issues/7152
spec@ext_transform_feedback@builtin-varyings gl_culldistance,Fail
-# https://gitlab.freedesktop.org/mesa/mesa/-/issues/7154
-spec@arb_enhanced_layouts@matching_fp64_types_1,Crash
-spec@arb_enhanced_layouts@matching_fp64_types_2,Crash
-spec@arb_enhanced_layouts@matching_fp64_types_3,Crash
-
spec@!opengl 1.1@line-smooth-stipple,Fail