From e09045e26cde23a3dc37dd5a70855257f066989c Mon Sep 17 00:00:00 2001 From: Karol Herbst Date: Sat, 11 Apr 2026 17:45:19 +0200 Subject: [PATCH] nak: the MS location comes last in TLD, same spot as depth compare in TEX Some Max Payne 3 shaders are impacted by this and probably will fix some issue there. The VK CTS isn't testing this, but it was verified to fix a real problem by inserting 0 offsets into the instruction and having CTS tests fail with the old ordering. Totals from 3 (0.00% of 1163204) affected shaders: CodeSize: 2496 -> 2736 (+9.62%) Static cycle count: 732 -> 741 (+1.23%) Fixes: ad01fbdda03 ("nak: Add a NIR texture lowering pass") Reviewed-by: Mel Henning Part-of: --- src/nouveau/compiler/nak_nir_lower_tex.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/nouveau/compiler/nak_nir_lower_tex.c b/src/nouveau/compiler/nak_nir_lower_tex.c index bdbc5c77b66..7129281e488 100644 --- a/src/nouveau/compiler/nak_nir_lower_tex.c +++ b/src/nouveau/compiler/nak_nir_lower_tex.c @@ -361,8 +361,6 @@ lower_tex(nir_builder *b, nir_tex_instr *tex, const struct nak_compiler *nak) if (tex_h != NULL) PUSH(src1, tex_h); - if (ms_idx != NULL) - PUSH(src1, ms_idx); if (lod != NULL) PUSH(src1, lod); if (offset_mode == NAK_NIR_OFFSET_MODE_AOFFI) { @@ -373,6 +371,8 @@ lower_tex(nir_builder *b, nir_tex_instr *tex, const struct nak_compiler *nak) } if (z_cmpr != NULL) PUSH(src1, z_cmpr); + if (ms_idx != NULL) + PUSH(src1, ms_idx); } scalar = try_scalarize_tex(tex, nak, src0, &src0_comps, src1, &src1_comps);