From 1ba858591bf16ffa43eb2ab24ed1ff9c258ceeab Mon Sep 17 00:00:00 2001 From: Brian Date: Wed, 28 Mar 2007 15:45:24 -0600 Subject: fix cond code swizzle bug --- src/mesa/shader/slang/slang_emit.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/mesa/shader/slang/slang_emit.c') diff --git a/src/mesa/shader/slang/slang_emit.c b/src/mesa/shader/slang/slang_emit.c index b00ab3c7bf..a726d67003 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 { -- cgit v1.2.3