From 415ed0567a8ab15d5290e550e3ddb7fe2c39b0b1 Mon Sep 17 00:00:00 2001 From: Qiang Yu Date: Tue, 23 May 2023 13:50:22 +0800 Subject: [PATCH] radeonsi: lower nir_load_tess_rel_patch_id_amd in abi for aco MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Marek Olšák Signed-off-by: Qiang Yu Part-of: --- src/gallium/drivers/radeonsi/si_nir_lower_abi.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/gallium/drivers/radeonsi/si_nir_lower_abi.c b/src/gallium/drivers/radeonsi/si_nir_lower_abi.c index 8cb9fc0e007..425bd94730c 100644 --- a/src/gallium/drivers/radeonsi/si_nir_lower_abi.c +++ b/src/gallium/drivers/radeonsi/si_nir_lower_abi.c @@ -595,6 +595,18 @@ static bool lower_intrinsic(nir_builder *b, nir_instr *instr, struct lower_abi_s assert(s->esgs_ring); replacement = s->esgs_ring; break; + case nir_intrinsic_load_tess_rel_patch_id_amd: + /* LLVM need to replace patch id arg, so have to be done in LLVM backend. */ + if (!shader->use_aco) + return false; + + if (stage == MESA_SHADER_TESS_CTRL) { + replacement = ac_nir_unpack_arg(b, &args->ac, args->ac.tcs_rel_ids, 0, 8); + } else { + assert(stage == MESA_SHADER_TESS_EVAL); + replacement = ac_nir_load_arg(b, &args->ac, args->ac.tes_rel_patch_id); + } + break; default: return false; }