_mesa_set_add(state->vars_written, var);
state->buffers_written = true;
+ break;
case nir_intrinsic_memory_barrier:
state->buffer_barriers = true;
state->image_barriers = true;
break;
- case nir_intrinsic_scoped_memory_barrier:
+ case nir_intrinsic_scoped_barrier:
/* 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;
}
return false;
/* Ignore variables we've already marked */
- if (var->data.image.access & ACCESS_CAN_REORDER)
+ if (var->data.access & ACCESS_CAN_REORDER)
return false;
- if (!(var->data.image.access & ACCESS_NON_WRITEABLE) &&
+ if (!(var->data.access & ACCESS_NON_WRITEABLE) &&
!_mesa_set_search(state->vars_written, var)) {
- var->data.image.access |= ACCESS_NON_WRITEABLE;
+ var->data.access |= ACCESS_NON_WRITEABLE;
return true;
}
/* Check if we were able to mark the whole variable non-writeable */
if (!(nir_intrinsic_access(instr) & ACCESS_NON_WRITEABLE) &&
- var->data.image.access & ACCESS_NON_WRITEABLE) {
+ var->data.access & ACCESS_NON_WRITEABLE) {
progress = true;
nir_intrinsic_set_access(instr,
nir_intrinsic_access(instr) |
}
}
- nir_foreach_variable(var, &shader->uniforms)
+ nir_foreach_variable_with_modes(var, shader, nir_var_uniform |
+ nir_var_mem_ubo |
+ nir_var_mem_ssbo)
var_progress |= process_variable(&state, var);
nir_foreach_function(func, shader) {