Mesa (master): i965/fs: Fix copy propagation with smearing.

Eric Anholt anholt at kemper.freedesktop.org
Tue Feb 19 20:10:32 UTC 2013


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

Author: Eric Anholt <eric at anholt.net>
Date:   Fri Feb 15 21:10:06 2013 -0800

i965/fs: Fix copy propagation with smearing.

We were correctly relaying the smear from MOV's src, but if the MOV
didn't do a smear, we don't want to smash the smear value from the
instruction being propagated into.  Prevents a regression in the
upcoming UBO change.

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
NOTE: This is a candidate for the 9.1 branch.

---

 .../drivers/dri/i965/brw_fs_copy_propagation.cpp   |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
index c4ec1d9..194ed07 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
@@ -223,7 +223,8 @@ fs_visitor::try_copy_propagate(fs_inst *inst, int arg, acp_entry *entry)
    inst->src[arg].file = entry->src.file;
    inst->src[arg].reg = entry->src.reg;
    inst->src[arg].reg_offset = entry->src.reg_offset;
-   inst->src[arg].smear = entry->src.smear;
+   if (entry->src.smear != -1)
+      inst->src[arg].smear = entry->src.smear;
 
    if (!inst->src[arg].abs) {
       inst->src[arg].abs = entry->src.abs;




More information about the mesa-commit mailing list