iris: Better handle metadata in NIR passes

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5171>
This commit is contained in:
Jason Ekstrand 2020-05-21 22:24:28 -05:00 committed by Marge Bot
parent 92cfbb7d0c
commit 27b7b89922

View file

@ -267,8 +267,10 @@ iris_lower_storage_image_derefs(nir_shader *nir)
static bool
iris_fix_edge_flags(nir_shader *nir)
{
if (nir->info.stage != MESA_SHADER_VERTEX)
if (nir->info.stage != MESA_SHADER_VERTEX) {
nir_shader_preserve_all_metadata(nir);
return false;
}
nir_variable *var = NULL;
nir_foreach_variable(v, &nir->outputs) {
@ -278,8 +280,10 @@ iris_fix_edge_flags(nir_shader *nir)
}
}
if (!var)
if (!var) {
nir_shader_preserve_all_metadata(nir);
return false;
}
exec_node_remove(&var->node);
var->data.mode = nir_var_shader_temp;
@ -294,6 +298,8 @@ iris_fix_edge_flags(nir_shader *nir)
nir_metadata_dominance |
nir_metadata_live_ssa_defs |
nir_metadata_loop_analysis);
} else {
nir_metadata_preserve(f->impl, nir_metadata_all);
}
}