/* 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;
}
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;
}
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:
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;
}
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:
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;
}
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:
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;
}
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: