From 3cc501be694e3434dcba0547153af1319503d655 Mon Sep 17 00:00:00 2001 From: Caio Marcelo de Oliveira Filho Date: Fri, 10 Jan 2020 23:52:30 -0800 Subject: [PATCH] nir: Add missing nir_var_mem_global to various passes Reviewed-by: Jason Ekstrand Tested-by: Marge Bot Part-of: --- 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: -- 2.30.2