Revert "mesa: further degenerate the special case lit substitute"
authorBrian Paul <brian.paul@tungstengraphics.com>
Thu, 12 Jun 2008 02:50:26 +0000 (20:50 -0600)
committerBrian Paul <brian.paul@tungstengraphics.com>
Thu, 12 Jun 2008 02:50:26 +0000 (20:50 -0600)
This reverts commit e841b92d9c8bf48085b4996df828ae745977f931.

This fixes two specular lighting conform failures.

src/mesa/main/ffvertex_prog.c

index 06710f405d8de44ea1430c335ce05979415b66d3..d71e0c00fdbf4e3be7116bf962cd9dc1dd20a8a0 100644 (file)
@@ -975,19 +975,19 @@ static void emit_degenerate_lit( struct tnl_program *p,
 {
    struct ureg id = get_identity_param(p);
    
-   /* Note that result.x & result.w will not be examined.  Note also that
-    * dots.xyzw == dots.xxxx.
+   /* 1, 0, 0, 1 
     */
+   emit_op1(p, OPCODE_MOV, lit, 0, swizzle(id, Z, X, X, Z)); 
 
-   /* result[1] = MAX2(in, 0)
+   /* 1, MAX2(in[0], 0), 0, 1
     */
-   emit_op2(p, OPCODE_MAX, lit, 0, id, dots); 
+   emit_op2(p, OPCODE_MAX, lit, WRITEMASK_Y, lit, swizzle1(dots, X)); 
 
-   /* result[2] = (in > 0 ? 1 : 0)
+   /* 1, MAX2(in[0], 0), (in[0] > 0 ? 1 : 0), 1
     */
    emit_op2(p, OPCODE_SLT, lit, WRITEMASK_Z, 
             lit,                /* 0 */
-            dots); /* in[0] */
+            swizzle1(dots, X)); /* in[0] */
 }
 
 
@@ -1144,13 +1144,10 @@ static void build_lighting( struct tnl_program *p )
 
         /* Calculate dot products:
          */
-         if (p->state->material_shininess_is_zero) {
-            emit_op2(p, OPCODE_DP3, dots, 0, normal, VPpli);
-         }
-         else {
-            emit_op2(p, OPCODE_DP3, dots, WRITEMASK_X, normal, VPpli);
+        emit_op2(p, OPCODE_DP3, dots, WRITEMASK_X, normal, VPpli);
+
+         if (!p->state->material_shininess_is_zero)
             emit_op2(p, OPCODE_DP3, dots, WRITEMASK_Y, normal, half);
-         }
 
         /* Front face lighting:
          */