diff options
author | Eric Anholt <[email protected]> | 2017-01-19 09:31:45 +1100 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2017-01-28 19:35:20 -0800 |
commit | 5b7e2697dc17ef11a247887115195f6f433c1469 (patch) | |
tree | ae5d9bd847b09a4399feb38e0da9ffbffdd5b288 /src/gallium/drivers | |
parent | c1299615fbe25440f82d6b69667967db294e6e31 (diff) |
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%)
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r-- | src/gallium/drivers/vc4/vc4_opt_coalesce_ff_writes.c | 6 |
1 files changed, 5 insertions, 1 deletions
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; } |