diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c index e908efe8077..530442d3927 100644 --- a/src/amd/vulkan/radv_pipeline.c +++ b/src/amd/vulkan/radv_pipeline.c @@ -556,9 +556,7 @@ radv_postprocess_nir(const struct radv_compiler_info *compiler_info, const struc if (gfx_level >= GFX8) nir_divergence_analysis(stage->nir); - if (nir_lower_bit_size(stage->nir, ac_nir_lower_bit_size_callback, &gfx_level)) { - NIR_PASS(_, stage->nir, nir_opt_constant_folding); - } + NIR_PASS(_, stage->nir, nir_lower_bit_size, ac_nir_lower_bit_size_callback, &gfx_level); } if (gfx_level >= GFX9) { bool separate_g16 = gfx_level >= GFX10; diff --git a/src/compiler/nir/nir_lower_bit_size.c b/src/compiler/nir/nir_lower_bit_size.c index 9f887bb2d0e..142672d0450 100644 --- a/src/compiler/nir/nir_lower_bit_size.c +++ b/src/compiler/nir/nir_lower_bit_size.c @@ -323,6 +323,7 @@ lower_impl(nir_function_impl *impl, void *callback_data) { nir_builder b = nir_builder_create(impl); + b.constant_fold_alu = true; bool progress = false; nir_foreach_block(block, impl) {