Mesa (gallium-0.1): tgsi: Implement CND, CND0 opcodes.

Jose Fonseca jrfonseca at kemper.freedesktop.org
Thu Aug 27 08:30:20 UTC 2009


Module: Mesa
Branch: gallium-0.1
Commit: f033a5f148e4894922351611699d8513438b153b
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f033a5f148e4894922351611699d8513438b153b

Author: Michal Krol <michal at vmware.com>
Date:   Mon Mar  9 08:50:01 2009 +0100

tgsi: Implement CND, CND0 opcodes.

---

 src/gallium/auxiliary/tgsi/tgsi_exec.c |   16 ++++++++++++++--
 1 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.c b/src/gallium/auxiliary/tgsi/tgsi_exec.c
index c59e18d..8044222 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_exec.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_exec.c
@@ -2034,11 +2034,23 @@ exec_instruction(
       break;
 
    case TGSI_OPCODE_CND:
-      assert (0);
+      FOR_EACH_ENABLED_CHANNEL(*inst, chan_index) {
+         FETCH(&r[0], 0, chan_index);
+         FETCH(&r[1], 1, chan_index);
+         FETCH(&r[2], 2, chan_index);
+         micro_lt(&r[0], &mach->Temps[TEMP_HALF_I].xyzw[TEMP_HALF_C], &r[2], &r[0], &r[1]);
+         STORE(&r[0], 0, chan_index);
+      }
       break;
 
    case TGSI_OPCODE_CND0:
-      assert (0);
+      FOR_EACH_ENABLED_CHANNEL(*inst, chan_index) {
+         FETCH(&r[0], 0, chan_index);
+         FETCH(&r[1], 1, chan_index);
+         FETCH(&r[2], 2, chan_index);
+         micro_le(&r[0], &mach->Temps[TEMP_0_I].xyzw[TEMP_0_C], &r[2], &r[0], &r[1]);
+         STORE(&r[0], 0, chan_index);
+      }
       break;
 
    case TGSI_OPCODE_DOT2ADD:




More information about the mesa-commit mailing list