From 2feedeeecb43fdd5738b85471f2691bb3d7adde4 Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Mon, 30 Jun 2025 15:11:28 -0400 Subject: [PATCH] nak: Don't se .yld or .reuse_mask on Blackwell+ These appear to be gone and everything works without setting them so let's just treat them like missing bits for now. According to the CUDA 12.8 disassembler, they still do something but it's not the same thing they did before and I don't have docs to tell me what they really do. Best to just not set them. Part-of: --- src/nouveau/compiler/nak/sm70_encode.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/nouveau/compiler/nak/sm70_encode.rs b/src/nouveau/compiler/nak/sm70_encode.rs index bd9abdf9a4a..b39c6672e11 100644 --- a/src/nouveau/compiler/nak/sm70_encode.rs +++ b/src/nouveau/compiler/nak/sm70_encode.rs @@ -214,11 +214,13 @@ impl SM70Encoder<'_> { fn set_instr_deps(&mut self, deps: &InstrDeps) { self.set_field(105..109, deps.delay); - self.set_bit(109, deps.yld); self.set_field(110..113, deps.wr_bar().unwrap_or(7)); self.set_field(113..116, deps.rd_bar().unwrap_or(7)); self.set_field(116..122, deps.wt_bar_mask); - self.set_field(122..126, deps.reuse_mask); + if self.sm < 120 { + self.set_bit(109, deps.yld); + self.set_field(122..126, deps.reuse_mask); + } } }