From: Brian Paul Date: Tue, 15 Jul 2008 00:08:52 +0000 (-0600) Subject: tgsi: fix bug in execution of loops inside of conditionals. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6eb7f763fbbbb7a32640760cd5d122020866fea1;p=mesa.git tgsi: fix bug in execution of loops inside of conditionals. Fixes infinite loop bug. --- diff --git a/src/gallium/auxiliary/tgsi/exec/tgsi_exec.c b/src/gallium/auxiliary/tgsi/exec/tgsi_exec.c index 46949661aff..001a4c4b152 100644 --- a/src/gallium/auxiliary/tgsi/exec/tgsi_exec.c +++ b/src/gallium/auxiliary/tgsi/exec/tgsi_exec.c @@ -2400,7 +2400,8 @@ exec_instruction( /* Restore ContMask, but don't pop */ assert(mach->ContStackTop > 0); mach->ContMask = mach->ContStack[mach->ContStackTop - 1]; - if (mach->LoopMask) { + UPDATE_EXEC_MASK(mach); + if (mach->ExecMask) { /* repeat loop: jump to instruction just past BGNLOOP */ *pc = inst->InstructionExtLabel.Label + 1; }