summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2013-02-15 21:10:06 -0800
committerIan Romanick <ian.d.romanick@intel.com>2013-03-05 14:57:08 -0800
commitc5f63bedacc770e559468408ad6cede1a8772bf9 (patch)
tree6282154ea805c27fbef7e8cc5243237df66e5658
parent952ca6a795dccb92bcf552da3e4dbfde703c77be (diff)
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@whitecape.org> NOTE: This is a candidate for the 9.1 branch. (cherry picked from commit 49bdebad3857bb9ebac53f593d08f0057f5a20d3)
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp3
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 c4ec1d97c13..194ed07cb3f 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;