From f8ee0efd044084fa2f3ad72bca7d2452441d22e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Wed, 24 Jun 2020 16:22:54 +0100 Subject: [PATCH] radv: move two NIR passes out of tight optimization loop MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit nir_remove_dead_variables nir_opt_shrink_vectors Acked-by: Timur Kristóf Reviewed-by: Rhys Perry Part-of: --- src/amd/vulkan/radv_shader.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c index b0b0b8b45f6..6d446e32473 100644 --- a/src/amd/vulkan/radv_shader.c +++ b/src/amd/vulkan/radv_shader.c @@ -166,8 +166,6 @@ radv_optimize_nir(struct nir_shader *shader, bool optimize_conservatively, bool NIR_PASS(progress, shader, nir_opt_copy_prop_vars); NIR_PASS(progress, shader, nir_opt_dead_write_vars); - NIR_PASS(progress, shader, nir_remove_dead_variables, - nir_var_function_temp | nir_var_shader_in | nir_var_shader_out, NULL); NIR_PASS_V(shader, nir_lower_alu_to_scalar, NULL, NULL); NIR_PASS_V(shader, nir_lower_phis_to_scalar, true); @@ -189,12 +187,15 @@ radv_optimize_nir(struct nir_shader *shader, bool optimize_conservatively, bool NIR_PASS(progress, shader, nir_opt_algebraic); NIR_PASS(progress, shader, nir_opt_undef); - NIR_PASS(progress, shader, nir_opt_shrink_vectors); + if (shader->options->max_unroll_iterations) { NIR_PASS(progress, shader, nir_opt_loop_unroll); } } while (progress && !optimize_conservatively); + NIR_PASS(progress, shader, nir_opt_shrink_vectors); + NIR_PASS(progress, shader, nir_remove_dead_variables, + nir_var_function_temp | nir_var_shader_in | nir_var_shader_out, NULL); NIR_PASS(progress, shader, nir_opt_conditional_discard); NIR_PASS(progress, shader, nir_opt_move, nir_move_load_ubo); }