nir: Add missing nir_var_mem_global to various passes
Reviewed-by: Jason Ekstrand <jason@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>
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
@@ -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:
|
||||
|
Reference in New Issue
Block a user