pan/midgard: Cleanup fragment writeout branch
authorAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Fri, 30 Aug 2019 18:01:15 +0000 (11:01 -0700)
committerAlyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Fri, 30 Aug 2019 22:50:26 +0000 (15:50 -0700)
I'm not sure if this is strictly necessary but it makes debugging easier
and minimizes the diff with the experimental scheduler.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
src/panfrost/midgard/midgard_compile.c

index 2223f92f1bd96f4e328897c0acadcf9504f59c88..8a0ac08803aaade23bfe48027986fe151e3f8ea6 100644 (file)
@@ -1416,13 +1416,14 @@ emit_fragment_store(compiler_context *ctx, unsigned src, unsigned rt)
         /* Next, generate the branch. For R render targets in the writeout, the
          * i'th render target jumps to pseudo-offset [2(R-1) + i] */
 
-        unsigned offset = (2 * (ctx->nir->num_outputs - 1)) + rt;
+        unsigned outputs = ctx->is_blend ? 1 : ctx->nir->num_outputs;
+        unsigned offset = (2 * (outputs - 1)) + rt;
 
         struct midgard_instruction ins =
                 v_alu_br_compact_cond(midgard_jmp_writeout_op_writeout, TAG_ALU_4, offset, midgard_condition_always);
 
         /* Add dependencies */
-        ins.src[0] = move.dest;
+        ins.src[0] = src;
         ins.src[1] = rt_move.dest;
 
         /* Emit the branch */