mesa: glsl: fix a swizzle bug in storage_to_src_reg()

Need to remove the 'nil' components before swizzling a swizzle
This commit is contained in:
Brian Paul 2008-08-20 14:40:02 -06:00
parent e55093bf2f
commit ad9c862ffb
1 changed files with 4 additions and 2 deletions

View File

@ -108,7 +108,9 @@ writemask_to_swizzle(GLuint writemask)
/**
* Swizzle a swizzle. That is, return swz2(swz1)
* Swizzle a swizzle (function composition).
* That is, return swz2(swz1), or said another way: swz1.szw2
* Example: swizzle_swizzle(".zwxx", ".xxyw") yields ".zzwx"
*/
GLuint
_slang_swizzle_swizzle(GLuint swz1, GLuint swz2)
@ -279,7 +281,7 @@ storage_to_src_reg(struct prog_src_register *src, const slang_ir_storage *st)
while (st->Parent) {
st = st->Parent;
index += st->Index;
swizzle = _slang_swizzle_swizzle(st->Swizzle, swizzle);
swizzle = _slang_swizzle_swizzle(fix_swizzle(st->Swizzle), swizzle);
}
assert(st->File >= 0);