Mesa (master): i965/fs: Enable constant propagation in 16-wide.

Eric Anholt anholt at kemper.freedesktop.org
Tue Apr 26 12:26:04 PDT 2011


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

Author: Eric Anholt <eric at anholt.net>
Date:   Fri Mar 25 11:19:53 2011 -0700

i965/fs: Enable constant propagation in 16-wide.

All that needed fixing was skipping the newly-possible
uncompressed/sechalf partial GRF constant writes.

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

---

 src/mesa/drivers/dri/i965/brw_fs.cpp |    8 +++-----
 1 files changed, 3 insertions(+), 5 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index b0fe0c7..7d1be5c 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -3107,10 +3107,6 @@ fs_visitor::propagate_constants()
 {
    bool progress = false;
 
-   /* Need to update the MRF tracking for compressed instructions. */
-   if (c->dispatch_width == 16)
-      return false;
-
    calculate_live_intervals();
 
    foreach_iter(exec_list_iterator, iter, this->instructions) {
@@ -3119,7 +3115,9 @@ fs_visitor::propagate_constants()
       if (inst->opcode != BRW_OPCODE_MOV ||
 	  inst->predicated ||
 	  inst->dst.file != GRF || inst->src[0].file != IMM ||
-	  inst->dst.type != inst->src[0].type)
+	  inst->dst.type != inst->src[0].type ||
+	  (c->dispatch_width == 16 &&
+	   (inst->force_uncompressed || inst->force_sechalf)))
 	 continue;
 
       /* Don't bother with cases where we should have had the



More information about the mesa-commit mailing list