diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c index 0ceadc88617..652852940d1 100644 --- a/src/amd/vulkan/radv_pipeline.c +++ b/src/amd/vulkan/radv_pipeline.c @@ -558,7 +558,6 @@ radv_postprocess_nir(struct radv_device *device, const struct radv_graphics_stat .allow_fp16 = gfx_level >= GFX9, }); - NIR_PASS(_, stage->nir, ac_nir_lower_global_access); NIR_PASS(_, stage->nir, ac_nir_lower_intrinsics_to_args, gfx_level, pdev->info.has_ls_vgpr_init_bug && gfx_state && !gfx_state->vs.has_prolog, radv_select_hw_stage(&stage->info, gfx_level), stage->info.wave_size, stage->info.workgroup_size, @@ -588,6 +587,8 @@ radv_postprocess_nir(struct radv_device *device, const struct radv_graphics_stat NIR_PASS(_, stage->nir, ac_nir_lower_mem_access_bit_sizes, gfx_level, use_llvm); } + NIR_PASS(_, stage->nir, ac_nir_lower_global_access); + radv_optimize_nir_algebraic( stage->nir, io_to_mem || lowered_ngg || stage->stage == MESA_SHADER_COMPUTE || stage->stage == MESA_SHADER_TASK, gfx_level >= GFX8, gfx_level);