zink: force unsized array in bo creation using the last block member type
if the last member of a block is an unsized array then the bo needs to have an unsized array cc: mesa-stable Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17239>
This commit is contained in:
@@ -2088,6 +2088,10 @@ unbreak_bos(nir_shader *shader, struct zink_shader *zs, bool needs_size)
|
|||||||
max_uniform_size = MAX2(max_uniform_size, size);
|
max_uniform_size = MAX2(max_uniform_size, size);
|
||||||
} else {
|
} else {
|
||||||
max_ssbo_size = MAX2(max_ssbo_size, size);
|
max_ssbo_size = MAX2(max_ssbo_size, size);
|
||||||
|
if (interface_type) {
|
||||||
|
if (glsl_type_is_unsized_array(glsl_get_struct_field(interface_type, glsl_get_length(interface_type) - 1)))
|
||||||
|
needs_size = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
var->data.mode = nir_var_shader_temp;
|
var->data.mode = nir_var_shader_temp;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user