From: Francisco Jerez Date: Thu, 19 Mar 2015 13:08:16 +0000 (+0200) Subject: i965/vec4: Don't lose the force_writemask_all flag during CSE. X-Git-Tag: upstream/17.1.0~19863 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ce030a63993f7192c6aa4c5b9180f9543a6a76bc;p=platform%2Fupstream%2Fmesa.git i965/vec4: Don't lose the force_writemask_all flag during CSE. And set it in the MOV instructions that copy the temporary to the original destination if the generator instruction had it set. Reviewed-by: Matt Turner --- diff --git a/src/mesa/drivers/dri/i965/brw_vec4_cse.cpp b/src/mesa/drivers/dri/i965/brw_vec4_cse.cpp index 0a68731..31c01d6 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_cse.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_cse.cpp @@ -114,6 +114,7 @@ instructions_match(vec4_instruction *a, vec4_instruction *b) a->conditional_mod == b->conditional_mod && a->dst.type == b->dst.type && a->dst.writemask == b->dst.writemask && + a->force_writemask_all == b->force_writemask_all && a->regs_written == b->regs_written && operands_match(a, b); } @@ -168,6 +169,8 @@ vec4_visitor::opt_cse_local(bblock_t *block) for (unsigned i = 0; i < entry->generator->regs_written; ++i) { vec4_instruction *copy = MOV(offset(entry->generator->dst, i), offset(entry->tmp, i)); + copy->force_writemask_all = + entry->generator->force_writemask_all; entry->generator->insert_after(block, copy); }