pco: add intrinsic for loading instance num in slot

Signed-off-by: Simon Perretta <simon.perretta@imgtec.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36412>
This commit is contained in:
Simon Perretta 2025-02-24 19:37:15 +00:00 committed by Marge Bot
parent 4ca0e4991e
commit 8b634881f8
2 changed files with 9 additions and 0 deletions

View file

@ -2707,6 +2707,9 @@ intrinsic("smp_coeffs_pco", src_comp=[16, 4, 4], dest_comp=8, indices=[SMP_FLAGS
# Performs an alpha test on the given parameters, returning float 0/1 depending on the comparison result.
intrinsic("alphatst_pco", src_comp=[1, 1, 1], dest_comp=1, flags=[CAN_ELIMINATE, CAN_REORDER], bit_sizes=[32])
# Load the current instance's number/id within its slot.
intrinsic("load_instance_num_pco", dest_comp=1, flags=[CAN_ELIMINATE, CAN_REORDER], bit_sizes=[32])
index("unsigned", "mutex_id_pco")
index("unsigned", "mutex_op_pco")

View file

@ -1094,6 +1094,12 @@ static pco_instr *trans_intr(trans_ctx *tctx, nir_intrinsic_instr *intr)
.mtx_op = nir_intrinsic_mutex_op_pco(intr));
break;
case nir_intrinsic_load_instance_num_pco:
instr = pco_mov(&tctx->b,
dest,
pco_ref_hwreg(PCO_SR_INST_NUM, PCO_REG_CLASS_SPEC));
break;
case nir_intrinsic_decl_reg:
case nir_intrinsic_load_reg:
case nir_intrinsic_store_reg: