From f646b057377ee9044dc61777a32302e327f62137 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timur=20Krist=C3=B3f?= Date: Wed, 27 Mar 2024 01:15:34 +0100 Subject: [PATCH] radeonsi: Implement new intrinsics for monolithic shaders. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For now, only monolithic shaders will hit the code path that will generate these intrinsics. Signed-off-by: Timur Kristóf Reviewed-by: Marek Olšák Reviewed-by: Samuel Pitoiset Part-of: --- src/gallium/drivers/radeonsi/si_nir_lower_abi.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/gallium/drivers/radeonsi/si_nir_lower_abi.c b/src/gallium/drivers/radeonsi/si_nir_lower_abi.c index 26dcd1ba5c0..f1b6bd2f794 100644 --- a/src/gallium/drivers/radeonsi/si_nir_lower_abi.c +++ b/src/gallium/drivers/radeonsi/si_nir_lower_abi.c @@ -701,6 +701,20 @@ static bool lower_intrinsic(nir_builder *b, nir_instr *instr, struct lower_abi_s assert(s->tess_offchip_ring); replacement = s->tess_offchip_ring; break; + case nir_intrinsic_load_tcs_tess_levels_to_tes_amd: + if (shader->is_monolithic) { + replacement = nir_imm_bool(b, key->ge.part.tcs.epilog.tes_reads_tess_factors); + } else { + unreachable("TODO"); + } + break; + case nir_intrinsic_load_tcs_primitive_mode_amd: + if (shader->is_monolithic) { + replacement = nir_imm_int(b, key->ge.part.tcs.epilog.prim_mode); + } else { + unreachable("TODO"); + } + break; case nir_intrinsic_load_ring_gsvs_amd: { unsigned stream_id = nir_intrinsic_stream_id(intrin); /* Unused nir_load_ring_gsvs_amd may not be eliminated yet. */