diff options
author | Michal Krol <michal@tungstengraphics.com> | 2008-11-14 13:31:06 +0100 |
---|---|---|
committer | Michal Krol <michal@tungstengraphics.com> | 2008-11-18 16:07:18 +0100 |
commit | d86ffcffb365d1f9fc383e450c8e08bf86169726 (patch) | |
tree | 7fd25abed2e376503c1bc4c1106dc91d405a7ac7 | |
parent | 957f7d7d94e8d092ba98433e61b21ac704453519 (diff) |
tgsi: Return 0.0 for negative constant register indices.
-rw-r--r-- | 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 177cf206b3..96567772b7 100644 --- a/src/gallium/auxiliary/tgsi/tgsi_exec.c +++ b/src/gallium/auxiliary/tgsi/tgsi_exec.c @@ -947,14 +947,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: |