Mesa (master): nir: Handle more barriers in dead_write and copy_prop
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Mon Jan 13 17:51:19 UTC 2020
Module: Mesa
Branch: master
Commit: f09db0bed5fa0227e10c8e911a118803f23a8fac
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f09db0bed5fa0227e10c8e911a118803f23a8fac
Author: Jason Ekstrand <jason at jlekstrand.net>
Date: Tue Jan 7 14:11:55 2020 -0600
nir: Handle more barriers in dead_write and copy_prop
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3307>
---
src/compiler/nir/nir_opt_copy_prop_vars.c | 13 +++++++++++++
src/compiler/nir/nir_opt_dead_write_vars.c | 9 +++++++++
2 files changed, 22 insertions(+)
diff --git a/src/compiler/nir/nir_opt_copy_prop_vars.c b/src/compiler/nir/nir_opt_copy_prop_vars.c
index c4544eac0f2..fdbf62c3599 100644
--- a/src/compiler/nir/nir_opt_copy_prop_vars.c
+++ b/src/compiler/nir/nir_opt_copy_prop_vars.c
@@ -807,6 +807,19 @@ copy_prop_vars_block(struct copy_prop_var_state *state,
nir_var_mem_shared);
break;
+ case nir_intrinsic_memory_barrier_buffer:
+ case nir_intrinsic_memory_barrier_atomic_counter:
+ if (debug) dump_instr(instr);
+
+ apply_barrier_for_modes(copies, nir_var_mem_ssbo);
+ break;
+
+ case nir_intrinsic_memory_barrier_shared:
+ if (debug) dump_instr(instr);
+
+ apply_barrier_for_modes(copies, nir_var_mem_shared);
+ break;
+
case nir_intrinsic_scoped_memory_barrier:
if (debug) dump_instr(instr);
diff --git a/src/compiler/nir/nir_opt_dead_write_vars.c b/src/compiler/nir/nir_opt_dead_write_vars.c
index 201e0847ce9..ffe0de771da 100644
--- a/src/compiler/nir/nir_opt_dead_write_vars.c
+++ b/src/compiler/nir/nir_opt_dead_write_vars.c
@@ -139,6 +139,15 @@ remove_dead_write_vars_local(void *mem_ctx, nir_block *block)
break;
}
+ case nir_intrinsic_memory_barrier_buffer:
+ case nir_intrinsic_memory_barrier_atomic_counter:
+ clear_unused_for_modes(&unused_writes, nir_var_mem_ssbo);
+ break;
+
+ case nir_intrinsic_memory_barrier_shared:
+ clear_unused_for_modes(&unused_writes, nir_var_mem_shared);
+ break;
+
case nir_intrinsic_scoped_memory_barrier: {
if (nir_intrinsic_memory_semantics(intrin) & NIR_MEMORY_RELEASE) {
clear_unused_for_modes(&unused_writes,
More information about the mesa-commit
mailing list