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) {
}
}
- if (!var)
+ if (!var) {
+ nir_shader_preserve_all_metadata(nir);
return false;
+ }
exec_node_remove(&var->node);
var->data.mode = nir_var_shader_temp;
nir_metadata_dominance |
nir_metadata_live_ssa_defs |
nir_metadata_loop_analysis);
+ } else {
+ nir_metadata_preserve(f->impl, nir_metadata_all);
}
}