From bc69f4192bf6680f44ac64b32a293904d5bcd89a Mon Sep 17 00:00:00 2001 From: Natalie Vock Date: Tue, 14 Apr 2026 13:20:36 +0200 Subject: [PATCH] radv: Run nir_opt_deref after first optimization loop Only at this point are loads from uninitialized variables lowered to undef and copy-propagated so that nir_opt_deref's cast-of-undef optimization works properly. Cc: mesa-stable (cherry picked from commit 1f998b38f450cd1b04a380b04b9933cfa162afc0) Part-of: --- .pick_status.json | 2 +- src/amd/vulkan/radv_shader.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index dfc6ae371c4..7bceccdc8cb 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -5874,7 +5874,7 @@ "description": "radv: Run nir_opt_deref after first optimization loop", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": null, "notes": null diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c index 19bc126f5bf..1c3f7a17c82 100644 --- a/src/amd/vulkan/radv_shader.c +++ b/src/amd/vulkan/radv_shader.c @@ -771,6 +771,7 @@ radv_shader_spirv_to_nir(struct radv_device *device, const struct radv_shader_st radv_optimize_nir(nir, false); NIR_PASS(_, nir, nir_opt_memcpy); + NIR_PASS(_, nir, nir_opt_deref); } /* We call nir_lower_var_copies() after the first radv_optimize_nir()