Merge commit 'origin/master' into gallium-0.2
[mesa.git] / src / mesa / main / ffvertex_prog.c
index 64a4788aa4b22d4741d526ce9509bdbea319e68f..ec0a5e3896d91e1645347c395d698c81fffb7a52 100644 (file)
@@ -736,11 +736,16 @@ static void emit_normalize_vec3( struct tnl_program *p,
                                 struct ureg dest,
                                 struct ureg src )
 {
+#if 0
+   /* XXX use this when drivers are ready for NRM3 */
+   emit_op1(p, OPCODE_NRM3, dest, WRITEMASK_XYZ, src);
+#else
    struct ureg tmp = get_temp(p);
    emit_op2(p, OPCODE_DP3, tmp, WRITEMASK_X, src, src);
    emit_op1(p, OPCODE_RSQ, tmp, WRITEMASK_X, tmp);
    emit_op2(p, OPCODE_MUL, dest, 0, src, swizzle1(tmp, X));
    release_temp(p, tmp);
+#endif
 }
 
 static void emit_passthrough( struct tnl_program *p, 
@@ -1316,6 +1321,9 @@ static void build_lighting( struct tnl_program *p )
            emit_op3(p, OPCODE_MAD, res0, mask0, swizzle1(lit,Y), diffuse, _bfc0);
            emit_op3(p, OPCODE_MAD, res1, mask1, swizzle1(lit,Z), specular, _bfc1);
 
+            /* restore negate flag for next lighting */
+            dots = negate(dots);
+
            release_temp(p, ambient);
            release_temp(p, diffuse);
            release_temp(p, specular);