diff --git a/src/asahi/compiler/agx_nir_fence_images.c b/src/asahi/compiler/agx_nir_fence_images.c index f2b0bc589df..944ab7452fe 100644 --- a/src/asahi/compiler/agx_nir_fence_images.c +++ b/src/asahi/compiler/agx_nir_fence_images.c @@ -10,14 +10,10 @@ #include "nir_intrinsics.h" static bool -pass(struct nir_builder *b, nir_instr *instr, void *data) +pass(struct nir_builder *b, nir_intrinsic_instr *intr, void *data) { - if (instr->type != nir_instr_type_intrinsic) - return false; + b->cursor = nir_after_instr(&intr->instr); - b->cursor = nir_after_instr(instr); - - nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr); switch (intr->intrinsic) { case nir_intrinsic_image_store: case nir_intrinsic_bindless_image_store: @@ -39,6 +35,6 @@ pass(struct nir_builder *b, nir_instr *instr, void *data) bool agx_nir_fence_images(nir_shader *s) { - return nir_shader_instructions_pass( + return nir_shader_intrinsics_pass( s, pass, nir_metadata_block_index | nir_metadata_dominance, NULL); }