glsl: Fix constant component count in vector constructor emitting.
authorKenneth Graunke <kenneth@whitecape.org>
Mon, 25 Oct 2010 19:44:55 +0000 (12:44 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 25 Oct 2010 19:56:47 +0000 (12:56 -0700)
Fixes freedesktop.org bug #31101 as well as piglit test cases
assignment-type-mismatch.vert and constructor-28.vert.

src/glsl/ast_function.cpp

index 20448f5a975c5b00e98d1830ab7ddebd875530e4..e31f79926deaeb47217e75099e0af32536940dac 100644 (file)
@@ -545,7 +545,7 @@ emit_inline_vector_constructor(const glsl_type *type,
            /* Mask of fields to be written in the assignment.
             */
            constant_mask |= ((1U << rhs_components) - 1) << base_lhs_component;
-           constant_components++;
+           constant_components += rhs_components;
 
            base_component += rhs_components;
         }