From 20f09fc0d4c0aea57af99bf5edc4eaa171ef4618 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Fri, 7 Feb 2025 09:53:54 -0800 Subject: [PATCH] crocus: Add missing nir_metadata_preserve in crocus_lower_storage_image_derefs Reviewed-by: Caio Oliveira Fixes: f3630548f1d ("crocus: initial gallium driver for Intel gfx 4-7") Closes: #12589 Part-of: (cherry picked from commit 40948b97150cf49a1b33a419075efcce4afcc8d0) --- .pick_status.json | 2 +- src/gallium/drivers/crocus/crocus_program.c | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index 128fc6c75b9..94512f99769 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -494,7 +494,7 @@ "description": "crocus: Add missing nir_metadata_preserve in crocus_lower_storage_image_derefs", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "f3630548f1da904ec6c63b43ece7e68afdb8867e", "notes": null diff --git a/src/gallium/drivers/crocus/crocus_program.c b/src/gallium/drivers/crocus/crocus_program.c index 2d43916e5d1..38c5c6a9889 100644 --- a/src/gallium/drivers/crocus/crocus_program.c +++ b/src/gallium/drivers/crocus/crocus_program.c @@ -283,6 +283,7 @@ crocus_lower_storage_image_derefs(nir_shader *nir) nir_function_impl *impl = nir_shader_get_entrypoint(nir); nir_builder b = nir_builder_create(impl); + bool progress = false; nir_foreach_block(block, impl) { nir_foreach_instr_safe(instr, block) { @@ -307,6 +308,7 @@ crocus_lower_storage_image_derefs(nir_shader *nir) nir_iadd_imm(&b, get_aoa_deref_offset(&b, deref, 1), var->data.driver_location); nir_rewrite_image_intrinsic(intrin, index, false); + progress = true; break; } @@ -315,6 +317,12 @@ crocus_lower_storage_image_derefs(nir_shader *nir) } } } + + if (progress) { + nir_metadata_preserve(impl, nir_metadata_control_flow); + } else { + nir_metadata_preserve(impl, nir_metadata_all); + } } // XXX: need unify_interfaces() at link time...