Module: Mesa
Branch: master
Commit: 5b7e2697dc17ef11a247887115195f6f433c1469
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=5b7e2697dc17ef11a247887115195f6f433c1469

Author: Eric Anholt <[email protected]>
Date:   Thu Jan 19 09:31:45 2017 +1100

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 b247c69..e4f8e57 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;
                 }

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to