Mesa (gallium-0.1): tgsi: Return 0.0 for negative constant register indices .

Michał Król michal at kemper.freedesktop.org
Mon Dec 22 20:43:42 UTC 2008


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

Author: Michal Krol <michal at tungstengraphics.com>
Date:   Fri Nov 14 13:31:06 2008 +0100

tgsi: Return 0.0 for negative constant register indices.

---

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

diff --git a/src/gallium/auxiliary/tgsi/tgsi_exec.c b/src/gallium/auxiliary/tgsi/tgsi_exec.c
index 0756d7d..d55c337 100644
--- a/src/gallium/auxiliary/tgsi/tgsi_exec.c
+++ b/src/gallium/auxiliary/tgsi/tgsi_exec.c
@@ -958,14 +958,22 @@ fetch_src_file_channel(
       switch( file ) {
       case TGSI_FILE_CONSTANT:
          assert(mach->Consts);
-         assert(index->i[0] >= 0);
-         assert(index->i[1] >= 0);
-         assert(index->i[2] >= 0);
-         assert(index->i[3] >= 0);
-         chan->f[0] = mach->Consts[index->i[0]][swizzle];
-         chan->f[1] = mach->Consts[index->i[1]][swizzle];
-         chan->f[2] = mach->Consts[index->i[2]][swizzle];
-         chan->f[3] = mach->Consts[index->i[3]][swizzle];
+         if (index->i[0] < 0)
+            chan->f[0] = 0.0f;
+         else
+            chan->f[0] = mach->Consts[index->i[0]][swizzle];
+         if (index->i[1] < 0)
+            chan->f[1] = 0.0f;
+         else
+            chan->f[1] = mach->Consts[index->i[1]][swizzle];
+         if (index->i[2] < 0)
+            chan->f[2] = 0.0f;
+         else
+            chan->f[2] = mach->Consts[index->i[2]][swizzle];
+         if (index->i[3] < 0)
+            chan->f[3] = 0.0f;
+         else
+            chan->f[3] = mach->Consts[index->i[3]][swizzle];
          break;
 
       case TGSI_FILE_INPUT:




More information about the mesa-commit mailing list