summaryrefslogtreecommitdiff
path: root/src/mesa/shader/slang/slang_vartable.c
diff options
context:
space:
mode:
authorAlan Hourihane <alanh@tungstengraphics.com>2008-11-01 22:57:26 +0000
committerAlan Hourihane <alanh@tungstengraphics.com>2008-11-01 22:57:26 +0000
commit81c862205e32b163a9f5ecf3f59e4cdcccee36c6 (patch)
tree50a5f45f1a0823758e72968d1f1dfd6e0d1098e0 /src/mesa/shader/slang/slang_vartable.c
parent14e1505cce24ee294cb98683504cc4537c20f34a (diff)
parentbbffed0857634912c7a1f13882eba303ae2bf4e1 (diff)
Merge commit 'origin/master' into gallium-0.2
Conflicts: src/mesa/shader/slang/library/slang_vertex_builtin_gc.h
Diffstat (limited to 'src/mesa/shader/slang/slang_vartable.c')
-rw-r--r--src/mesa/shader/slang/slang_vartable.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/mesa/shader/slang/slang_vartable.c b/src/mesa/shader/slang/slang_vartable.c
index 9b607e6403..95971a70a9 100644
--- a/src/mesa/shader/slang/slang_vartable.c
+++ b/src/mesa/shader/slang/slang_vartable.c
@@ -115,6 +115,11 @@ _slang_pop_var_table(slang_var_table *vt)
store->Index,
_mesa_swizzle_string(store->Swizzle, 0, 0));
+ if (store->File == PROGRAM_SAMPLER) {
+ /* samplers have no storage */
+ continue;
+ }
+
if (store->Size == 1)
comp = GET_SWZ(store->Swizzle, 0);
else
@@ -241,7 +246,15 @@ GLboolean
_slang_alloc_var(slang_var_table *vt, slang_ir_storage *store)
{
struct table *t = vt->Top;
- const int i = alloc_reg(vt, store->Size, GL_FALSE);
+ int i;
+
+ if (store->File == PROGRAM_SAMPLER) {
+ /* don't really allocate storage */
+ store->Index = 0;
+ return GL_TRUE;
+ }
+
+ i = alloc_reg(vt, store->Size, GL_FALSE);
if (i < 0)
return GL_FALSE;