From 8955bc34581ac716cf5cabb02fde5260ab3ae207 Mon Sep 17 00:00:00 2001
From: Brian <brian.paul@tungstengraphics.com>
Date: Tue, 2 Oct 2007 14:25:43 -0600
Subject: Minor optimization: no-op CAL when ExecMask==0x0.

---
 src/mesa/pipe/tgsi/exec/tgsi_exec.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

(limited to 'src')

diff --git a/src/mesa/pipe/tgsi/exec/tgsi_exec.c b/src/mesa/pipe/tgsi/exec/tgsi_exec.c
index e428b250f00..5a50bd5aed6 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:
-- 
cgit v1.2.3