From ab80e1189f4bc04beabb34da3c76d1a1bf15a99a Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Sun, 17 Sep 2023 12:15:21 -0500 Subject: [PATCH] nak: Add support for centroid and sample interp modes Part-of: --- src/nouveau/compiler/nak_from_nir.rs | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/nouveau/compiler/nak_from_nir.rs b/src/nouveau/compiler/nak_from_nir.rs index e31ef6c2418..ada3afc48c8 100644 --- a/src/nouveau/compiler/nak_from_nir.rs +++ b/src/nouveau/compiler/nak_from_nir.rs @@ -1236,9 +1236,16 @@ impl<'a> ShaderFromNir<'a> { srcs[0].as_def().parent_instr().as_intrinsic().unwrap(); let addr = u16::try_from(intrin.base()).unwrap() + u16::try_from(srcs[1].as_uint().unwrap()).unwrap(); - let freq = InterpFreq::Pass; - let loc = match bary.intrinsic { - nir_intrinsic_load_barycentric_pixel => InterpLoc::Default, + let (freq, loc) = match bary.intrinsic { + nir_intrinsic_load_barycentric_centroid => { + (InterpFreq::Pass, InterpLoc::Centroid) + } + nir_intrinsic_load_barycentric_pixel => { + (InterpFreq::Pass, InterpLoc::Default) + } + nir_intrinsic_load_barycentric_sample => { + (InterpFreq::Pass, InterpLoc::Centroid) + } _ => panic!("Unsupported interp mode"), };