spirv: move cmat store barrier after the store.
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run

Fixes: b98f87612b ("spirv: Implement SPV_KHR_cooperative_matrix")
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36583>
This commit is contained in:
Dave Airlie 2025-08-06 06:24:08 +10:00 committed by Marge Bot
parent 6383050826
commit b1242e6b30

View file

@ -139,6 +139,10 @@ vtn_handle_cooperative_instruction(struct vtn_builder *b, SpvOp opcode,
const SpvCooperativeMatrixLayout layout = vtn_constant_uint(b, w[3]);
nir_def *stride = count > 4 ? vtn_get_nir_ssa(b, w[4]) : nir_imm_zero(&b->nb, 1, 32);
nir_deref_instr *src = vtn_get_cmat_deref(b, w[2]);
nir_cmat_store(&b->nb, vtn_pointer_to_ssa(b, dest), &src->def, stride,
.matrix_layout = vtn_matrix_layout_to_glsl(layout));
SpvMemoryAccessMask access = SpvMemoryAccessMaskNone;
if (count > 5) {
unsigned idx = 5, alignment;
@ -147,9 +151,6 @@ vtn_handle_cooperative_instruction(struct vtn_builder *b, SpvOp opcode,
vtn_emit_make_available_barrier(b, access, scope, dest->mode);
}
nir_deref_instr *src = vtn_get_cmat_deref(b, w[2]);
nir_cmat_store(&b->nb, vtn_pointer_to_ssa(b, dest), &src->def, stride,
.matrix_layout = vtn_matrix_layout_to_glsl(layout));
break;
}