summaryrefslogtreecommitdiff
path: root/src/glsl/lower_variable_index_to_cond_assign.cpp
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2010-09-27 15:46:51 -0700
committerEric Anholt <eric@anholt.net>2010-09-27 15:52:56 -0700
commit668cdbe12958247f4a563c362dbf3247de7ccc3f (patch)
tree11c62afb6e8cdfdda930f55603d32d688c3b49b1 /src/glsl/lower_variable_index_to_cond_assign.cpp
parent8b2d5f431f8c862374d3e352f228b016060cd70a (diff)
glsl: Fix broadcast_index of lower_variable_index_to_cond_assign.
It's trying to get an int smeared across all channels, not trying to get a 1:1 mapping of a subset of a vector's channels. This usually ended up not mattering with ir_to_mesa, since it just smears floats into every chan of a vec4. Fixes: glsl1-temp array with swizzled variable indexing
Diffstat (limited to 'src/glsl/lower_variable_index_to_cond_assign.cpp')
-rw-r--r--src/glsl/lower_variable_index_to_cond_assign.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/glsl/lower_variable_index_to_cond_assign.cpp b/src/glsl/lower_variable_index_to_cond_assign.cpp
index 68f30ca0ef..5f0dd73113 100644
--- a/src/glsl/lower_variable_index_to_cond_assign.cpp
+++ b/src/glsl/lower_variable_index_to_cond_assign.cpp
@@ -117,7 +117,7 @@ struct switch_generator
new(this->mem_ctx) ir_dereference_variable(index);
if (comps) {
- const ir_swizzle_mask m = { 0, 1, 2, 3, comps, false };
+ const ir_swizzle_mask m = { 0, 0, 0, 0, comps, false };
broadcast_index = new(this->mem_ctx) ir_swizzle(broadcast_index, m);
}