From 89e0f544223034a902f5459103e66ce3f245bc95 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Sun, 11 Sep 2022 11:17:15 -0400 Subject: [PATCH] agx: Don't use nir_find_variable_with_driver_location io_semantics is the preferred alternative. Signed-off-by: Alyssa Rosenzweig Part-of: --- src/asahi/compiler/agx_compile.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/src/asahi/compiler/agx_compile.c b/src/asahi/compiler/agx_compile.c index 3528238..654f4c6 100644 --- a/src/asahi/compiler/agx_compile.c +++ b/src/asahi/compiler/agx_compile.c @@ -437,13 +437,9 @@ agx_emit_store_vary(agx_builder *b, nir_intrinsic_instr *instr) static agx_instr * agx_emit_fragment_out(agx_builder *b, nir_intrinsic_instr *instr) { - const nir_variable *var = - nir_find_variable_with_driver_location(b->shader->nir, - nir_var_shader_out, nir_intrinsic_base(instr)); - assert(var); - - unsigned loc = var->data.location; - assert(var->data.index == 0 && "todo: dual-source blending"); + nir_io_semantics sem = nir_intrinsic_io_semantics(instr); + unsigned loc = sem.location; + assert(sem.dual_source_blend_index == 0 && "todo: dual-source blending"); assert(loc == FRAG_RESULT_DATA0 && "todo: MRT"); unsigned rt = (loc - FRAG_RESULT_DATA0); @@ -474,13 +470,9 @@ agx_emit_fragment_out(agx_builder *b, nir_intrinsic_instr *instr) static void agx_emit_load_tile(agx_builder *b, agx_index *dests, nir_intrinsic_instr *instr) { - const nir_variable *var = - nir_find_variable_with_driver_location(b->shader->nir, - nir_var_shader_out, nir_intrinsic_base(instr)); - assert(var); - - unsigned loc = var->data.location; - assert(var->data.index == 0 && "todo: dual-source blending"); + nir_io_semantics sem = nir_intrinsic_io_semantics(instr); + unsigned loc = sem.location; + assert(sem.dual_source_blend_index == 0 && "dual src ld_tile is nonsense"); assert(loc == FRAG_RESULT_DATA0 && "todo: MRT"); unsigned rt = (loc - FRAG_RESULT_DATA0); -- 2.7.4