From e172f97fddf472edee93f7850e4ef6318110d5a8 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Tue, 17 Feb 2026 16:51:05 -0500 Subject: [PATCH] nir/opt_constant_folding: optimize ballot(false) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit always zero. noticed on dEQP-VK.subgroups.ballot.graphics.graphic Signed-off-by: Alyssa Rosenzweig Reviewed-by: Marek Olšák Part-of: --- src/compiler/nir/nir_opt_constant_folding.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/compiler/nir/nir_opt_constant_folding.c b/src/compiler/nir/nir_opt_constant_folding.c index 71810af7790..836ae5d00ff 100644 --- a/src/compiler/nir/nir_opt_constant_folding.c +++ b/src/compiler/nir/nir_opt_constant_folding.c @@ -316,6 +316,14 @@ try_fold_intrinsic(nir_builder *b, nir_intrinsic_instr *intrin, return nir_imm_bool(b, constant_true); } + case nir_intrinsic_ballot_relaxed: + case nir_intrinsic_ballot: { + if (!nir_src_is_const(intrin->src[0]) || nir_src_as_bool(intrin->src[0])) + return NULL; + + return nir_imm_zero(b, intrin->def.num_components, intrin->def.bit_size); + } + case nir_intrinsic_load_input: case nir_intrinsic_load_per_primitive_input: case nir_intrinsic_load_input_vertex: