summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2019-03-20 08:19:45 +1000
committerDave Airlie <[email protected]>2019-03-21 10:25:40 +1000
commit3b3653c4cfbedf55a00cbddd0f341ebd1de81665 (patch)
tree041ed84edae4b03f02612ec6892926f9c39ac237
parente7c840216380cbb0cb8a2eccf9bdf16aaf2a4554 (diff)
nir/spirv: don't use bare types, remove assert in split vars for testing
For OpenCL we never want to strip the info from the types, and it makes type comparisons easier in later stages. We might later need a nir pass to strip this for GLSL, but so far the only regression is the assert and Jason said removing that is fine. Reviewed-by: Jason Ekstrand <[email protected]> Signed-off-by: Dave Airlie <[email protected]>
-rw-r--r--src/compiler/nir/nir_split_vars.c1
-rw-r--r--src/compiler/spirv/vtn_variables.c6
2 files changed, 3 insertions, 4 deletions
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;