diff options
author | Dave Airlie <[email protected]> | 2019-03-22 14:21:55 +1000 |
---|---|---|
committer | Dave Airlie <[email protected]> | 2019-03-25 13:57:16 +1000 |
commit | 9417793fb1453ab90f0dd53bf55904fc02b28215 (patch) | |
tree | 3be245a48f4b86ee7190c49ac153d34705fa111e /src/compiler | |
parent | 9d0ae777dd68dad682dcc7768726996639ae2684 (diff) |
nir/split_vars: fixup some more explicit_stride related issues.
With vkpipelinedb Samuel discovered a regression since we stopped
stripping types at the spir-v level.
This adds a check to the var splitting for the case where it
asserts the type hasn't changed, when it has just created a bare
type, and it's different than the original type which has an explicit
stride.
This also removes a pointless assert that also triggers.
Fixes: 3b3653c4cf (nir/spirv: don't use bare types, remove assert in split vars for testing)
Acked-by: Jason Ekstrand <[email protected]>
Diffstat (limited to 'src/compiler')
-rw-r--r-- | src/compiler/nir/nir_split_vars.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/src/compiler/nir/nir_split_vars.c b/src/compiler/nir/nir_split_vars.c index 777c4ac7225..c6fe1b59a65 100644 --- a/src/compiler/nir/nir_split_vars.c +++ b/src/compiler/nir/nir_split_vars.c @@ -519,7 +519,7 @@ split_var_list_arrays(nir_shader *shader, exec_node_remove(&var->node); exec_list_push_tail(&split_vars, &var->node); } else { - assert(split_type == var->type); + assert(split_type == glsl_get_bare_type(var->type)); /* If we're not modifying this variable, delete the info so we skip * it faster in later passes. */ @@ -915,7 +915,6 @@ get_vec_var_usage(nir_variable *var, const struct glsl_type *type = var->type; for (unsigned i = 0; i < num_levels; i++) { usage->levels[i].array_len = glsl_get_length(type); - assert(glsl_get_explicit_stride(type) == 0); type = glsl_get_array_element(type); } assert(glsl_type_is_vector_or_scalar(type)); |