diff options
author | Eric Anholt <eric@anholt.net> | 2010-08-27 11:05:47 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2010-08-27 12:02:15 -0700 |
commit | 91a037b5e1374fe0574480a579bd36c71b75f9c2 (patch) | |
tree | e9d86d4138395c64d09005f400c555714c14e474 | |
parent | 0435cb348aaa8f2d8163a38517a098e27a81adef (diff) |
i965: Fix destination writemasking in the new FS.
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp index a73509f258..a2284e431a 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp @@ -832,12 +832,11 @@ fs_visitor::visit(ir_assignment *ir) } for (i = 0; i < type_size(ir->lhs->type); i++) { - if (i < 4 && !(write_mask & (1 << i))) - continue; - - inst = emit(fs_inst(BRW_OPCODE_MOV, l, r)); - if (ir->condition) - inst->predicated = true; + if (i >= 4 || (write_mask & (1 << i))) { + inst = emit(fs_inst(BRW_OPCODE_MOV, l, r)); + if (ir->condition) + inst->predicated = true; + } l.reg_offset++; r.reg_offset++; } |