Mesa (master): iris: Better handle metadata in NIR passes
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Thu Jun 11 05:28:40 UTC 2020
Module: Mesa
Branch: master
Commit: 27b7b8992250252f319dfe75d7cf17e0355d368b
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=27b7b8992250252f319dfe75d7cf17e0355d368b
Author: Jason Ekstrand <jason at jlekstrand.net>
Date: Thu May 21 22:24:28 2020 -0500
iris: Better handle metadata in NIR passes
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5171>
---
src/gallium/drivers/iris/iris_program.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/gallium/drivers/iris/iris_program.c b/src/gallium/drivers/iris/iris_program.c
index 98c1c3e93e7..4790ef34576 100644
--- a/src/gallium/drivers/iris/iris_program.c
+++ b/src/gallium/drivers/iris/iris_program.c
@@ -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);
}
}
More information about the mesa-commit
mailing list