nir_ssa_dest_init(&tex->instr, &tex->dest, 4, 32, "tex");
nir_builder_instr_insert(&b, &tex->instr);
- nir_intrinsic_instr *membar = nir_intrinsic_instr_create(b.shader, nir_intrinsic_memory_barrier);
- nir_builder_instr_insert(&b, &membar->instr);
-
- nir_intrinsic_instr *bar = nir_intrinsic_instr_create(b.shader, nir_intrinsic_control_barrier);
- nir_builder_instr_insert(&b, &bar->instr);
+ nir_scoped_barrier(&b, NIR_SCOPE_WORKGROUP, NIR_SCOPE_WORKGROUP,
+ NIR_MEMORY_ACQ_REL, nir_var_mem_ssbo);
nir_ssa_def *outval = &tex->dest.ssa;
nir_intrinsic_instr *store = nir_intrinsic_instr_create(b.shader, nir_intrinsic_image_deref_store);
.lower_fpow = true,
.lower_mul_2x32_64 = true,
.lower_rotate = true,
+ .use_scoped_barrier = true,
.max_unroll_iterations = 32,
.use_interpolated_input_intrinsics = true,
/* nir_lower_int64() isn't actually called for the LLVM backend, but
.lower_fpow = true,
.lower_mul_2x32_64 = true,
.lower_rotate = true,
+ .use_scoped_barrier = true,
.max_unroll_iterations = 32,
.use_interpolated_input_intrinsics = true,
.lower_int64_options = nir_lower_imul64 |
nir_lower_dsqrt |
nir_lower_drsq |
nir_lower_ddiv,
- .use_scoped_barrier = true,
};
bool