From f2fa7d0e9c59df53f23a05ebfdc383c58ec107ef Mon Sep 17 00:00:00 2001 From: Karol Herbst Date: Mon, 9 Mar 2026 16:47:20 +0100 Subject: [PATCH] nak: allow vector sources for f2f16 conversions Reviewed-by: Mary Guillemard Reviewed-by: Mel Henning Part-of: --- src/nouveau/compiler/nak/from_nir.rs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/nouveau/compiler/nak/from_nir.rs b/src/nouveau/compiler/nak/from_nir.rs index a19f27b4046..92dd1be870c 100644 --- a/src/nouveau/compiler/nak/from_nir.rs +++ b/src/nouveau/compiler/nak/from_nir.rs @@ -652,11 +652,18 @@ impl<'a> ShaderFromNir<'a> { srcs_vec.push(Some(b.prmt4(prmt_srcs, prmt).into())); } - 32 => { - assert!(comps == 1); - let s = usize::from(alu_src.swizzle[0]); - srcs_vec.push(Some(ssa[s].into())); - } + 32 => match comps { + 1 => { + let s = usize::from(alu_src.swizzle[0]); + srcs_vec.push(Some(ssa[s].into())); + } + 2 => { + let s0 = usize::from(alu_src.swizzle[0]); + let s1 = usize::from(alu_src.swizzle[1]); + srcs_vec.push(Some([ssa[s0], ssa[s1]].into())); + } + _ => panic!("Invalid num_components: {comps}"), + }, 64 => { assert!(comps == 1); let s = usize::from(alu_src.swizzle[0]);