From: Eric Anholt Date: Sat, 16 Feb 2013 05:10:06 +0000 (-0800) Subject: i965/fs: Fix copy propagation with smearing. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=49bdebad3857bb9ebac53f593d08f0057f5a20d3;p=mesa.git 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 NOTE: This is a candidate for the 9.1 branch. --- 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;