SrcReg->Swizzle is always initialized to SWIZZLE_NOOP, and if the program
specifies a 2/3/4-compontent swizzle suffix, SrcReg->Swizzles is just ORed
against the new component values, without resetting it first.
Attached patch makes tests/vptest2 pass.
From Tilam Sauerbeck bug 6673
diff --git a/src/mesa/shader/nvvertparse.c b/src/mesa/shader/nvvertparse.c
index 71d5116..a7e062c 100644
--- a/src/mesa/shader/nvvertparse.c
+++ b/src/mesa/shader/nvvertparse.c
@@ -699,6 +699,9 @@
else {
/* 2, 3 or 4-component swizzle */
GLint k;
+
+ srcReg->Swizzle = 0;
+
for (k = 0; token[k] && k < 5; k++) {
if (token[k] == 'x')
srcReg->Swizzle |= 0 << (k*3);