aco: create acq+rel barriers instead of acq/rel
NIR doesn't have atomic loads/stores, so we have to workaround that with this for dEQP-VK.memory_model.* to pass. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4905>
This commit is contained in:
@@ -6759,9 +6759,9 @@ void emit_memory_barrier(isel_context *ctx, nir_intrinsic_instr *instr) {
|
||||
|
||||
unsigned nir_semantics = nir_intrinsic_memory_semantics(instr);
|
||||
if (nir_semantics & NIR_MEMORY_ACQUIRE)
|
||||
semantics |= semantic_acquire;
|
||||
semantics |= semantic_acquire | semantic_release;
|
||||
if (nir_semantics & NIR_MEMORY_RELEASE)
|
||||
semantics |= semantic_release;
|
||||
semantics |= semantic_acquire | semantic_release;
|
||||
|
||||
assert(!(nir_semantics & (NIR_MEMORY_MAKE_AVAILABLE | NIR_MEMORY_MAKE_VISIBLE)));
|
||||
|
||||
|
Reference in New Issue
Block a user