From 915684fe6053f8a25ae4aeefbfb1b4e0f5225e9b Mon Sep 17 00:00:00 2001 From: Mary Guillemard Date: Sun, 29 Mar 2026 13:59:25 +0200 Subject: [PATCH] agx: Fix alpha-to-coverage bit size The new common code gives us 32-bit values, handle this. This fixes the various crashes on CTS since the common code changes of last week. Signed-off-by: Mary Guillemard Fixes: 22a061fb91e3 ("nir: Use better calculation for alpha-to-coverage mask") Part-of: --- src/asahi/compiler/agx_nir_lower_sample_mask.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/asahi/compiler/agx_nir_lower_sample_mask.c b/src/asahi/compiler/agx_nir_lower_sample_mask.c index b6f1920a9b8..f05cf6dd8f5 100644 --- a/src/asahi/compiler/agx_nir_lower_sample_mask.c +++ b/src/asahi/compiler/agx_nir_lower_sample_mask.c @@ -82,7 +82,8 @@ lower_discard_to_sample_mask_0(nir_builder *b, nir_intrinsic_instr *intr, return false; b->cursor = nir_before_instr(&intr->instr); - nir_sample_mask_agx(b, intr->src[0].ssa, nir_imm_intN_t(b, 0, 16)); + nir_sample_mask_agx(b, nir_u2u16(b, intr->src[0].ssa), + nir_imm_intN_t(b, 0, 16)); nir_instr_remove(&intr->instr); return true; } @@ -146,7 +147,7 @@ run_tests_after_last_discard(nir_builder *b) b->cursor = nir_before_instr(&intr->instr); nir_def *all_samples = nir_imm_intN_t(b, ALL_SAMPLES, 16); - nir_def *killed = intr->src[0].ssa; + nir_def *killed = nir_u2u16(b, intr->src[0].ssa); nir_def *live = nir_ixor(b, killed, all_samples); nir_def *testing = nir_load_shader_part_tests_zs_agx(b);