From: Brian Date: Wed, 28 Mar 2007 21:45:24 +0000 (-0600) Subject: fix cond code swizzle bug X-Git-Tag: 062012170305~19678 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1ba858591bf16ffa43eb2ab24ed1ff9c258ceeab;p=profile%2Fivi%2Fmesa.git fix cond code swizzle bug --- diff --git a/src/mesa/shader/slang/slang_emit.c b/src/mesa/shader/slang/slang_emit.c index b00ab3c..a726d67 100644 --- a/src/mesa/shader/slang/slang_emit.c +++ b/src/mesa/shader/slang/slang_emit.c @@ -1314,8 +1314,13 @@ emit_cont_break_if_true(slang_emit_info *emitInfo, slang_ir_node *n) const gl_inst_opcode opcode = (n->Opcode == IR_CONT_IF_TRUE) ? OPCODE_CONT : OPCODE_BRK; if (emitInfo->EmitCondCodes) { + /* Get the writemask from the previous instruction which set + * the condcodes. Use that writemask as the CondSwizzle. + */ + const GLuint condWritemask = inst->DstReg.WriteMask; inst = new_instruction(emitInfo, opcode); inst->DstReg.CondMask = COND_NE; + inst->DstReg.CondSwizzle = writemask_to_swizzle(condWritemask); return inst; } else {