From 4453971fbb36c440608d00f277424bb8fb9ee6db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= Date: Tue, 12 Mar 2024 16:35:44 +0100 Subject: [PATCH] radv: mark nir_opt_loop() as not idempotent MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This pass misses opportunities because foreach_list_typed_safe() might point to disconnected cf_nodes after some optimization got applied. No fossil-db changes. Reviewed-by: Timur Kristóf Part-of: --- src/amd/vulkan/radv_shader.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c index d6b90f8b6e6..92fe0a2a321 100644 --- a/src/amd/vulkan/radv_shader.c +++ b/src/amd/vulkan/radv_shader.c @@ -148,7 +148,7 @@ radv_optimize_nir(struct nir_shader *shader, bool optimize_conservatively) NIR_LOOP_PASS(progress, skip, shader, nir_opt_remove_phis); NIR_LOOP_PASS(progress, skip, shader, nir_opt_dce); bool opt_loop_progress = false; - NIR_LOOP_PASS(opt_loop_progress, skip, shader, nir_opt_loop); + NIR_LOOP_PASS_NOT_IDEMPOTENT(opt_loop_progress, skip, shader, nir_opt_loop); if (opt_loop_progress) { progress = true; NIR_LOOP_PASS(progress, skip, shader, nir_copy_prop);