From: Alyssa Rosenzweig Date: Tue, 10 Mar 2020 19:54:17 +0000 (-0400) Subject: pan/midgard: Remove indexing dependency of sysvals X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=674b24dcfd34ea8c6c2ee9a0232f59519ce1d3c1;p=mesa.git pan/midgard: Remove indexing dependency of sysvals Ideally we would sync the compilers to use the same indexing scheme but that's a lot more Midgard refactoring than I have time for right now. This is good enough honestly. Signed-off-by: Alyssa Rosenzweig Part-of: --- diff --git a/src/panfrost/midgard/midgard_compile.c b/src/panfrost/midgard/midgard_compile.c index d1805a5f4d7..db69619e0ec 100644 --- a/src/panfrost/midgard/midgard_compile.c +++ b/src/panfrost/midgard/midgard_compile.c @@ -338,7 +338,7 @@ midgard_nir_sysval_for_intrinsic(nir_intrinsic_instr *instr) } static int -sysval_for_instr(nir_instr *instr, unsigned *dest) +sysval_for_instr(nir_instr *instr, nir_dest *dest) { nir_intrinsic_instr *intr; nir_dest *dst = NULL; @@ -368,7 +368,7 @@ sysval_for_instr(nir_instr *instr, unsigned *dest) } if (dest && dst) - *dest = nir_dest_index(dst); + *dest = *dst; return sysval; } @@ -1371,12 +1371,14 @@ static void emit_sysval_read(compiler_context *ctx, nir_instr *instr, signed dest_override, unsigned nr_components, unsigned offset) { - unsigned dest = 0; + nir_dest nir_dest; /* Figure out which uniform this is */ - int sysval = sysval_for_instr(instr, &dest); + int sysval = sysval_for_instr(instr, &nir_dest); void *val = _mesa_hash_table_u64_search(ctx->sysval_to_id, sysval); + unsigned dest = nir_dest_index(&nir_dest); + if (dest_override >= 0) dest = dest_override;