summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBrian Paul <brian.paul@tungstengraphics.com>2008-07-14 18:08:52 -0600
committerBrian Paul <brian.paul@tungstengraphics.com>2008-07-14 18:08:52 -0600
commit6eb7f763fbbbb7a32640760cd5d122020866fea1 (patch)
treeb725334796179e419ef7af755f3ffb3a42d9cb6b /src
parentec698034d1a7cc390ce8eda8a28732fa40ff80ec (diff)
tgsi: fix bug in execution of loops inside of conditionals.
Fixes infinite loop bug.
Diffstat (limited to 'src')
-rw-r--r--src/gallium/auxiliary/tgsi/exec/tgsi_exec.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gallium/auxiliary/tgsi/exec/tgsi_exec.c b/src/gallium/auxiliary/tgsi/exec/tgsi_exec.c
index 46949661af..001a4c4b15 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;
}