mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 05:18:08 +02:00
zink: add unsized array type to get_glsl_type_element() handling
Reviewed-by: Adam Jackson <ajax@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9624>
This commit is contained in:
parent
6399906843
commit
5783298027
1 changed files with 8 additions and 3 deletions
|
|
@ -336,9 +336,14 @@ get_glsl_type(struct ntv_context *ctx, const struct glsl_type *type)
|
|||
glsl_get_vector_elements(type));
|
||||
|
||||
if (glsl_type_is_array(type)) {
|
||||
SpvId ret = spirv_builder_type_array(&ctx->builder,
|
||||
get_glsl_type(ctx, glsl_get_array_element(type)),
|
||||
emit_uint_const(ctx, 32, glsl_get_length(type)));
|
||||
SpvId ret;
|
||||
SpvId element_type = get_glsl_type(ctx, glsl_get_array_element(type));
|
||||
if (glsl_type_is_unsized_array(type))
|
||||
ret = spirv_builder_type_runtime_array(&ctx->builder, element_type);
|
||||
else
|
||||
ret = spirv_builder_type_array(&ctx->builder,
|
||||
element_type,
|
||||
emit_uint_const(ctx, 32, glsl_get_length(type)));
|
||||
uint32_t stride = glsl_get_explicit_stride(type);
|
||||
if (!stride && glsl_type_is_scalar(glsl_get_array_element(type))) {
|
||||
stride = MAX2(glsl_get_bit_size(glsl_get_array_element(type)) / 8, 1);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue