Merge branch '7.8'
[mesa.git] / src / gallium / drivers / softpipe / sp_fs_exec.c
index a8999ed34794db88cf8eef71a9f70d930066a9ff..67e2c8f8bc4223737fe3b24d0e6a4a7900b810f3 100644 (file)
@@ -127,11 +127,8 @@ exec_run( const struct sp_fragment_shader *base,
                     (float)quad->input.x0, (float)quad->input.y0, 
                     &machine->QuadPos);
 
-   if (quad->input.facing) {
-      machine->Face = -1.0f;
-   } else {
-      machine->Face = 1.0f;
-   }
+   /* convert 0 to 1.0 and 1 to -1.0 */
+   machine->Face = (float) (quad->input.facing * -2 + 1);
 
    quad->inout.mask &= tgsi_exec_machine_run( machine );
    if (quad->inout.mask == 0)
@@ -148,8 +145,13 @@ exec_run( const struct sp_fragment_shader *base,
          case TGSI_SEMANTIC_COLOR:
             {
                uint cbuf = sem_index[i];
+
+               assert(sizeof(quad->output.color[cbuf]) ==
+                      sizeof(machine->Outputs[i]));
+
+               /* copy float[4][4] result */
                memcpy(quad->output.color[cbuf],
-                      &machine->Outputs[i].xyzw[0].f[0],
+                      &machine->Outputs[i],
                       sizeof(quad->output.color[0]) );
             }
             break;