diff --git a/src/compiler/nir/nir_split_vars.c b/src/compiler/nir/nir_split_vars.c index 394021e608e..777c4ac7225 100644 --- a/src/compiler/nir/nir_split_vars.c +++ b/src/compiler/nir/nir_split_vars.c @@ -341,7 +341,6 @@ init_var_list_array_infos(struct exec_list *vars, const struct glsl_type *type = var->type; for (int i = 0; i < num_levels; i++) { - assert(glsl_get_explicit_stride(type) == 0); info->levels[i].array_len = glsl_get_length(type); type = glsl_get_array_element(type); diff --git a/src/compiler/spirv/vtn_variables.c b/src/compiler/spirv/vtn_variables.c index da4c57f7c77..782ad08d321 100644 --- a/src/compiler/spirv/vtn_variables.c +++ b/src/compiler/spirv/vtn_variables.c @@ -2054,7 +2054,7 @@ vtn_create_variable(struct vtn_builder *b, struct vtn_value *val, /* Private variables don't have any explicit layout but some layouts * may have leaked through due to type deduplication in the SPIR-V. */ - var->var->type = glsl_get_bare_type(var->type->type); + var->var->type = var->type->type; } var->var->data.mode = nir_mode; var->var->data.location = -1; @@ -2072,7 +2072,7 @@ vtn_create_variable(struct vtn_builder *b, struct vtn_value *val, * layouts may have leaked through due to type deduplication in the * SPIR-V. */ - var->var->type = glsl_get_bare_type(var->type->type); + var->var->type = var->type->type; var->var->data.mode = nir_var_mem_shared; } break; @@ -2130,7 +2130,7 @@ vtn_create_variable(struct vtn_builder *b, struct vtn_value *val, * the SPIR-V. We do, however, keep the layouts in the variable's * interface_type because we need offsets for XFB arrays of blocks. */ - var->var->type = glsl_get_bare_type(var->type->type); + var->var->type = var->type->type; var->var->data.mode = nir_mode; var->var->data.patch = var->patch;