From 5b7e2697dc17ef11a247887115195f6f433c1469 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Thu, 19 Jan 2017 09:31:45 +1100 Subject: [PATCH] vc4: Coalesce into TLB writes as well as VPM/tex. This generally cuts an instruction when blending is enabled and we thus have a single instruction generating the color value. total instructions in shared programs: 91759 -> 91634 (-0.14%) instructions in affected programs: 5338 -> 5213 (-2.34%) --- src/gallium/drivers/vc4/vc4_opt_coalesce_ff_writes.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/vc4/vc4_opt_coalesce_ff_writes.c b/src/gallium/drivers/vc4/vc4_opt_coalesce_ff_writes.c index b247c690d82..e4f8e57fcd7 100644 --- a/src/gallium/drivers/vc4/vc4_opt_coalesce_ff_writes.c +++ b/src/gallium/drivers/vc4/vc4_opt_coalesce_ff_writes.c @@ -57,7 +57,10 @@ qir_opt_coalesce_ff_writes(struct vc4_compile *c) if (mov_inst->src[0].file != QFILE_TEMP) continue; - if (!(mov_inst->dst.file == QFILE_VPM || qir_is_tex(mov_inst))) + if (!(mov_inst->dst.file == QFILE_VPM || + mov_inst->dst.file == QFILE_TLB_COLOR_WRITE || + mov_inst->dst.file == QFILE_TLB_COLOR_WRITE_MS || + qir_is_tex(mov_inst))) continue; uint32_t temp = mov_inst->src[0].index; @@ -80,6 +83,7 @@ qir_opt_coalesce_ff_writes(struct vc4_compile *c) if (qir_has_side_effects(c, inst) || qir_has_side_effect_reads(c, inst) || + inst->op == QOP_TLB_COLOR_READ || inst->op == QOP_VARY_ADD_C) { continue; } -- 2.30.2