i965/fs: Don't drop force_writemask_all and _sechalf when copying a CSE temporary.
authorFrancisco Jerez <currojerez@riseup.net>
Thu, 4 Jun 2015 13:09:47 +0000 (16:09 +0300)
committerFrancisco Jerez <currojerez@riseup.net>
Tue, 9 Jun 2015 12:18:31 +0000 (15:18 +0300)
LOAD_PAYLOAD instructions need the same treatment as any other
generator instructions, at least FB writes and typed surface messages
will need a payload built with non-zero execution controls.

Reviewed-by: Matt Turner <mattst88@gmail.com>
src/mesa/drivers/dri/i965/brw_fs_cse.cpp

index 3ddd17c7e3b383aadb262aa2fce41d54def12767..822a6a3a2f8f87499235132f06e11b22563962b5 100644 (file)
@@ -206,9 +206,10 @@ create_copy_instr(fs_visitor *v, fs_inst *inst, fs_reg src, bool negate)
       copy = v->LOAD_PAYLOAD(inst->dst, payload, sources, header_size);
    } else {
       copy = v->MOV(inst->dst, src);
-      copy->force_writemask_all = inst->force_writemask_all;
       copy->src[0].negate = negate;
    }
+   copy->force_writemask_all = inst->force_writemask_all;
+   copy->force_sechalf = inst->force_sechalf;
    assert(copy->regs_written == written);
 
    return copy;