glsl: Fix copy'n'wasted ir_noop_swizzle conditions.
authorEric Anholt <eric@anholt.net>
Wed, 22 Sep 2010 18:43:58 +0000 (11:43 -0700)
committerEric Anholt <eric@anholt.net>
Wed, 22 Sep 2010 20:09:51 +0000 (13:09 -0700)
It considered .xyyy a noop for vec4 instead of .xyzw, and similar for vec3.

src/glsl/ir_noop_swizzle.cpp

index b78c87b47f3bfd0bd81259867abaa8fd2423b528..0403dfa4e9368da29cd49131163e93f775484b0e 100644 (file)
@@ -61,9 +61,9 @@ ir_noop_swizzle_visitor::handle_rvalue(ir_rvalue **rvalue)
       return;
    if (elems >= 2 && swiz->mask.y != 1)
       return;
-   if (elems >= 3 && swiz->mask.z != 1)
+   if (elems >= 3 && swiz->mask.z != 2)
       return;
-   if (elems >= 4 && swiz->mask.w != 1)
+   if (elems >= 4 && swiz->mask.w != 3)
       return;
 
    this->progress = true;