From 9f40d06d2d2ae86cad2ac316e33cb092179f4278 Mon Sep 17 00:00:00 2001 From: Georg Lehmann Date: Tue, 11 Feb 2025 13:13:08 +0100 Subject: [PATCH] radv: use nir_opt_phi_to_bool Foz-DB Navi21: Totals from 5238 (6.60% of 79377) affected shaders: MaxWaves: 112653 -> 112805 (+0.13%) Instrs: 8008658 -> 8008518 (-0.00%); split: -0.18%, +0.18% CodeSize: 42632748 -> 42650584 (+0.04%); split: -0.16%, +0.20% VGPRs: 293296 -> 292672 (-0.21%); split: -0.22%, +0.01% SpillSGPRs: 1958 -> 2066 (+5.52%); split: -0.66%, +6.18% SpillVGPRs: 2934 -> 2896 (-1.30%) Latency: 77959669 -> 77957296 (-0.00%); split: -0.10%, +0.10% InvThroughput: 20650753 -> 20585680 (-0.32%); split: -0.39%, +0.08% VClause: 164769 -> 164979 (+0.13%); split: -0.14%, +0.27% SClause: 237718 -> 237731 (+0.01%); split: -0.03%, +0.03% Copies: 643403 -> 634147 (-1.44%); split: -1.83%, +0.39% Branches: 234353 -> 233990 (-0.15%); split: -0.30%, +0.15% PreSGPRs: 291935 -> 293893 (+0.67%); split: -0.01%, +0.68% PreVGPRs: 245802 -> 245241 (-0.23%); split: -0.23%, +0.00% VALU: 5145144 -> 5133006 (-0.24%); split: -0.38%, +0.14% SALU: 1178442 -> 1189578 (+0.94%); split: -0.19%, +1.13% VMEM: 343288 -> 343994 (+0.21%); split: -0.02%, +0.23% SMEM: 354275 -> 354273 (-0.00%); split: -0.00%, +0.00% Reviewed-by: Ian Romanick Reviewed-by: Alyssa Rosenzweig Part-of: --- src/amd/vulkan/radv_shader.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c index 5d94f8c2b77..0f6f637550f 100644 --- a/src/amd/vulkan/radv_shader.c +++ b/src/amd/vulkan/radv_shader.c @@ -195,6 +195,7 @@ radv_optimize_nir(struct nir_shader *shader, bool optimize_conservatively) NIR_LOOP_PASS(progress, skip, shader, nir_opt_constant_folding); NIR_LOOP_PASS(progress, skip, shader, nir_opt_intrinsics); NIR_LOOP_PASS_NOT_IDEMPOTENT(progress, skip, shader, nir_opt_algebraic); + NIR_LOOP_PASS(progress, skip, shader, nir_opt_phi_to_bool); NIR_LOOP_PASS(progress, skip, shader, nir_opt_undef); @@ -232,6 +233,7 @@ radv_optimize_nir_algebraic(nir_shader *nir, bool opt_offsets, bool opt_mqsad) .discard_ok = true, }; NIR_PASS(_, nir, nir_opt_peephole_select, &peephole_select_options); + NIR_PASS(_, nir, nir_opt_phi_to_bool); NIR_PASS(more_algebraic, nir, nir_opt_algebraic); NIR_PASS(_, nir, nir_opt_generate_bfi); NIR_PASS(_, nir, nir_opt_remove_phis);