summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2010-06-02 13:56:39 -0700
committerEric Anholt <eric@anholt.net>2010-06-02 14:06:41 -0700
commit84db95bfcd340a26a448fa89a19215711681cb50 (patch)
tree20bcbbb61dbf4e9b6b94a1685bb755913b961f06 /src
parenta33b5ef7d02a45bda106065e7c927358b04fe289 (diff)
shaders: Don't lose the param binding swizzle for single params.
Multiple item params are OK because we don't allow swizzles for them (in case you do array access to hit their elements, for example). For singles, though, using the swizzle can cut down on storage, we do want to allow a swizzled use of another param. Fixes OGLC texRect.c.
Diffstat (limited to 'src')
-rw-r--r--src/mesa/shader/program_parse.tab.c2
-rw-r--r--src/mesa/shader/program_parse.y2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/mesa/shader/program_parse.tab.c b/src/mesa/shader/program_parse.tab.c
index 99c4b2baa5..7da7226c32 100644
--- a/src/mesa/shader/program_parse.tab.c
+++ b/src/mesa/shader/program_parse.tab.c
@@ -3366,7 +3366,7 @@ yyreduce:
s->param_binding_type = (yyvsp[(3) - (3)].temp_sym).param_binding_type;
s->param_binding_begin = (yyvsp[(3) - (3)].temp_sym).param_binding_begin;
s->param_binding_length = (yyvsp[(3) - (3)].temp_sym).param_binding_length;
- s->param_binding_swizzle = SWIZZLE_XYZW;
+ s->param_binding_swizzle = (yyvsp[(3) - (3)].temp_sym).param_binding_swizzle;
s->param_is_array = 0;
}
;}
diff --git a/src/mesa/shader/program_parse.y b/src/mesa/shader/program_parse.y
index 06c2db7a07..a2f34b863b 100644
--- a/src/mesa/shader/program_parse.y
+++ b/src/mesa/shader/program_parse.y
@@ -1219,7 +1219,7 @@ PARAM_singleStmt: PARAM IDENTIFIER paramSingleInit
s->param_binding_type = $3.param_binding_type;
s->param_binding_begin = $3.param_binding_begin;
s->param_binding_length = $3.param_binding_length;
- s->param_binding_swizzle = SWIZZLE_XYZW;
+ s->param_binding_swizzle = $3.param_binding_swizzle;
s->param_is_array = 0;
}
}