Mesa (master): nir: Add missing nir_var_mem_global to various passes
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Jan 14 23:05:01 UTC 2020
Module: Mesa
Branch: master
Commit: 3cc501be694e3434dcba0547153af1319503d655
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3cc501be694e3434dcba0547153af1319503d655
Author: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>
Date: Fri Jan 10 23:52:30 2020 -0800
nir: Add missing nir_var_mem_global to various passes
Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3322>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3322>
---
src/compiler/nir/nir_opt_access.c | 3 ++-
src/compiler/nir/nir_opt_combine_stores.c | 17 ++++++++++-------
src/compiler/nir/nir_opt_copy_prop_vars.c | 15 ++++++++++-----
src/compiler/nir/nir_opt_dead_write_vars.c | 9 ++++++---
4 files changed, 28 insertions(+), 16 deletions(-)
diff --git a/src/compiler/nir/nir_opt_access.c b/src/compiler/nir/nir_opt_access.c
index 731b129ad97..e2a6b8f2747 100644
--- a/src/compiler/nir/nir_opt_access.c
+++ b/src/compiler/nir/nir_opt_access.c
@@ -138,7 +138,8 @@ gather_intrinsic(struct access_state *state, nir_intrinsic_instr *instr)
/* TODO: Could be more granular if we had nir_var_mem_image. */
if (nir_intrinsic_memory_modes(instr) & (nir_var_mem_ubo |
nir_var_mem_ssbo |
- nir_var_uniform)) {
+ nir_var_uniform |
+ nir_var_mem_global)) {
state->buffer_barriers = true;
state->image_barriers = true;
}
diff --git a/src/compiler/nir/nir_opt_combine_stores.c b/src/compiler/nir/nir_opt_combine_stores.c
index 285a2564a95..106b3e5f851 100644
--- a/src/compiler/nir/nir_opt_combine_stores.c
+++ b/src/compiler/nir/nir_opt_combine_stores.c
@@ -287,10 +287,11 @@ combine_stores_block(struct combine_stores_state *state, nir_block *block)
nir_foreach_instr_safe(instr, block) {
if (instr->type == nir_instr_type_call) {
combine_stores_with_modes(state, nir_var_shader_out |
- nir_var_shader_temp |
- nir_var_function_temp |
- nir_var_mem_ssbo |
- nir_var_mem_shared);
+ nir_var_shader_temp |
+ nir_var_function_temp |
+ nir_var_mem_ssbo |
+ nir_var_mem_shared |
+ nir_var_mem_global);
continue;
}
@@ -307,12 +308,14 @@ combine_stores_block(struct combine_stores_state *state, nir_block *block)
case nir_intrinsic_group_memory_barrier:
case nir_intrinsic_memory_barrier:
combine_stores_with_modes(state, nir_var_shader_out |
- nir_var_mem_ssbo |
- nir_var_mem_shared);
+ nir_var_mem_ssbo |
+ nir_var_mem_shared |
+ nir_var_mem_global);
break;
case nir_intrinsic_memory_barrier_buffer:
- combine_stores_with_modes(state, nir_var_mem_ssbo);
+ combine_stores_with_modes(state, nir_var_mem_ssbo |
+ nir_var_mem_global);
break;
case nir_intrinsic_memory_barrier_shared:
diff --git a/src/compiler/nir/nir_opt_copy_prop_vars.c b/src/compiler/nir/nir_opt_copy_prop_vars.c
index 54fbad221a7..05bdec50f45 100644
--- a/src/compiler/nir/nir_opt_copy_prop_vars.c
+++ b/src/compiler/nir/nir_opt_copy_prop_vars.c
@@ -155,7 +155,8 @@ gather_vars_written(struct copy_prop_var_state *state,
nir_var_shader_temp |
nir_var_function_temp |
nir_var_mem_ssbo |
- nir_var_mem_shared;
+ nir_var_mem_shared |
+ nir_var_mem_global;
continue;
}
@@ -168,7 +169,8 @@ gather_vars_written(struct copy_prop_var_state *state,
case nir_intrinsic_memory_barrier:
written->modes |= nir_var_shader_out |
nir_var_mem_ssbo |
- nir_var_mem_shared;
+ nir_var_mem_shared |
+ nir_var_mem_global;
break;
case nir_intrinsic_scoped_memory_barrier:
@@ -788,7 +790,8 @@ copy_prop_vars_block(struct copy_prop_var_state *state,
nir_var_shader_temp |
nir_var_function_temp |
nir_var_mem_ssbo |
- nir_var_mem_shared);
+ nir_var_mem_shared |
+ nir_var_mem_global);
if (debug) dump_copy_entries(copies);
continue;
}
@@ -804,13 +807,15 @@ copy_prop_vars_block(struct copy_prop_var_state *state,
apply_barrier_for_modes(copies, nir_var_shader_out |
nir_var_mem_ssbo |
- nir_var_mem_shared);
+ nir_var_mem_shared |
+ nir_var_mem_global);
break;
case nir_intrinsic_memory_barrier_buffer:
if (debug) dump_instr(instr);
- apply_barrier_for_modes(copies, nir_var_mem_ssbo);
+ apply_barrier_for_modes(copies, nir_var_mem_ssbo |
+ nir_var_mem_global);
break;
case nir_intrinsic_memory_barrier_shared:
diff --git a/src/compiler/nir/nir_opt_dead_write_vars.c b/src/compiler/nir/nir_opt_dead_write_vars.c
index 0980647c63d..6bd20db07ca 100644
--- a/src/compiler/nir/nir_opt_dead_write_vars.c
+++ b/src/compiler/nir/nir_opt_dead_write_vars.c
@@ -122,7 +122,8 @@ remove_dead_write_vars_local(void *mem_ctx, nir_block *block)
nir_var_shader_temp |
nir_var_function_temp |
nir_var_mem_ssbo |
- nir_var_mem_shared);
+ nir_var_mem_shared |
+ nir_var_mem_global);
continue;
}
@@ -135,12 +136,14 @@ remove_dead_write_vars_local(void *mem_ctx, nir_block *block)
case nir_intrinsic_memory_barrier: {
clear_unused_for_modes(&unused_writes, nir_var_shader_out |
nir_var_mem_ssbo |
- nir_var_mem_shared);
+ nir_var_mem_shared |
+ nir_var_mem_global);
break;
}
case nir_intrinsic_memory_barrier_buffer:
- clear_unused_for_modes(&unused_writes, nir_var_mem_ssbo);
+ clear_unused_for_modes(&unused_writes, nir_var_mem_ssbo |
+ nir_var_mem_global);
break;
case nir_intrinsic_memory_barrier_shared:
More information about the mesa-commit
mailing list