summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBrian <brian.paul@tungstengraphics.com>2007-10-02 14:25:43 -0600
committerBrian <brian.paul@tungstengraphics.com>2007-10-02 14:25:43 -0600
commit8955bc34581ac716cf5cabb02fde5260ab3ae207 (patch)
tree1a38d815b223539529dbcfecd5ec44c8fe0f305e /src
parent6aab3e3d269b71e8306928088e3603daf082223f (diff)
Minor optimization: no-op CAL when ExecMask==0x0.
Diffstat (limited to 'src')
-rw-r--r--src/mesa/pipe/tgsi/exec/tgsi_exec.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/mesa/pipe/tgsi/exec/tgsi_exec.c b/src/mesa/pipe/tgsi/exec/tgsi_exec.c
index e428b250f0..5a50bd5aed 100644
--- a/src/mesa/pipe/tgsi/exec/tgsi_exec.c
+++ b/src/mesa/pipe/tgsi/exec/tgsi_exec.c
@@ -1911,9 +1911,12 @@ exec_instruction(
break;
case TGSI_OPCODE_CAL:
- /* note that PC was already incremented above */
- mach->CallStack[mach->CallStackTop++] = *pc;
- *pc = inst->InstructionExtLabel.Label;
+ /* skip the call if no execution channels are enabled */
+ if (mach->ExecMask) {
+ /* note that PC was already incremented above */
+ mach->CallStack[mach->CallStackTop++] = *pc;
+ *pc = inst->InstructionExtLabel.Label;
+ }
break;
case TGSI_OPCODE_RET: