tgsi: fix bug in execution of loops inside of conditionals.
authorBrian Paul <brian.paul@tungstengraphics.com>
Tue, 15 Jul 2008 00:08:52 +0000 (18:08 -0600)
committerBrian Paul <brian.paul@tungstengraphics.com>
Tue, 15 Jul 2008 00:08:52 +0000 (18:08 -0600)
Fixes infinite loop bug.

src/gallium/auxiliary/tgsi/exec/tgsi_exec.c

index 4694966..001a4c4 100644 (file)
@@ -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;
       }