Mesa (master): glsl: Fix broadcast_index of lower_variable_index_to_cond_assign.
Eric Anholt
anholt at kemper.freedesktop.org
Mon Sep 27 23:00:18 UTC 2010
Module: Mesa
Branch: master
Commit: 668cdbe12958247f4a563c362dbf3247de7ccc3f
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=668cdbe12958247f4a563c362dbf3247de7ccc3f
Author: Eric Anholt <eric at anholt.net>
Date: Mon Sep 27 15:46:51 2010 -0700
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
---
src/glsl/lower_variable_index_to_cond_assign.cpp | 2 +-
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 68f30ca..5f0dd73 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);
}
More information about the mesa-commit
mailing list