From b22315f9a9fe78a15db6bdac87647ca9d1f1307a Mon Sep 17 00:00:00 2001 From: Gert Wollny Date: Sat, 23 May 2026 23:44:20 +0200 Subject: [PATCH] r600/sfn: run nir_opt_idiv_const Suggested by Emma. This reduces the number of ALU groups in the query result shader by more than 50%. Signed-off-by: Gert Wollny Part-of: --- src/gallium/drivers/r600/sfn/sfn_nir.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/gallium/drivers/r600/sfn/sfn_nir.cpp b/src/gallium/drivers/r600/sfn/sfn_nir.cpp index 0a59584121d..4fd9e3b2236 100644 --- a/src/gallium/drivers/r600/sfn/sfn_nir.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_nir.cpp @@ -697,6 +697,8 @@ r600_finalize_nir_common(nir_shader *nir, enum amd_gfx_level gfx_level) NIR_PASS(_, nir, nir_lower_flrp, nir_lower_flrp_mask, false); + NIR_PASS(_, nir, nir_opt_idiv_const, 64); + NIR_PASS(_, nir, nir_opt_idiv_const, 32); nir_lower_idiv_options idiv_options = {0}; NIR_PASS(_, nir, nir_lower_idiv, &idiv_options); @@ -719,6 +721,7 @@ r600_finalize_nir_common(nir_shader *nir, enum amd_gfx_level gfx_level) NIR_PASS(_, nir, r600_lower_shared_io); NIR_PASS(_, nir, r600_nir_lower_atomics); + static const nir_lower_subgroups_options r600_nir_subgroups_options = { .ballot_bit_size = 32, .ballot_components = 1,