mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-28 10:20:09 +01:00
spirv: move cmat store barrier after the store.
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> (cherry picked from commitb1242e6b30)
This commit is contained in:
parent
fd859840f7
commit
52b445f3f9
2 changed files with 5 additions and 4 deletions
|
|
@ -4384,7 +4384,7 @@
|
|||
"description": "spirv: move cmat store barrier after the store.",
|
||||
"nominated": true,
|
||||
"nomination_type": 2,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "b98f87612bc14fe88184dc099d9d4f8e6b3b23cb",
|
||||
"notes": null
|
||||
|
|
|
|||
|
|
@ -119,6 +119,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;
|
||||
|
|
@ -127,9 +131,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;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue