From 694e68f359eec3bbcee17c42e236f24c63d05eff Mon Sep 17 00:00:00 2001 From: Mary Guillemard Date: Fri, 23 Aug 2024 09:20:31 +0200 Subject: [PATCH] nak: Fix wrong encoding for F2FP cbuf and immediate forms F2FP.PACK_AB always uses src0 and src1, only F2FP.MERGE_C uses src1 and src2. This fixes "f32tof16" instruction test regression on vk3d. Fixes: e19871bd6ad ("nak: Use F2FP for nir_op_pack_half_2x16_split on SM86+") Signed-off-by: Mary Guillemard Part-of: --- src/nouveau/compiler/nak/sm70.rs | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/src/nouveau/compiler/nak/sm70.rs b/src/nouveau/compiler/nak/sm70.rs index b4c8ea40df5..cc155485286 100644 --- a/src/nouveau/compiler/nak/sm70.rs +++ b/src/nouveau/compiler/nak/sm70.rs @@ -1931,23 +1931,13 @@ impl SM70Op for OpF2FP { } fn encode(&self, e: &mut SM70Encoder<'_>) { - if src_is_zero_or_gpr(&self.srcs[1]) { - e.encode_alu( - 0x03e, - Some(&self.dst), - Some(&self.srcs[0]), - Some(&self.srcs[1]), - Some(&Src::new_zero()), - ) - } else { - e.encode_alu( - 0x03e, - Some(&self.dst), - None, - Some(&self.srcs[1]), - Some(&self.srcs[0]), - ) - }; + e.encode_alu( + 0x03e, + Some(&self.dst), + Some(&self.srcs[0]), + Some(&self.srcs[1]), + Some(&Src::new_zero()), + ); // .MERGE_C behavior // Use src1 and src2, src0 is unused