Merge branch 'mesa_7_6_branch' into mesa_7_7_branch
[mesa.git] / src / mesa / drivers / dri / r600 / r700_state.c
index 41000dc8ce4140e665ac6e0294464490d7e205df..16b05d5cd9a462a00325ab1e5a602565d126a76b 100644 (file)
@@ -202,9 +202,6 @@ static void r700SetDBRenderState(GLcontext * ctx)
 
        SETbit(r700->DB_SHADER_CONTROL.u32All, DUAL_EXPORT_ENABLE_bit);
        SETfield(r700->DB_SHADER_CONTROL.u32All, EARLY_Z_THEN_LATE_Z, Z_ORDER_shift, Z_ORDER_mask);
-       /* XXX not sure if this is required */
-       if (context->radeon.radeonScreen->chip_family < CHIP_FAMILY_RV770)
-               SETbit(r700->DB_RENDER_OVERRIDE.u32All, FORCE_SHADER_Z_ORDER_bit);
        /* XXX need to enable htile for hiz/s */
        SETfield(r700->DB_RENDER_OVERRIDE.u32All, FORCE_DISABLE, FORCE_HIZ_ENABLE_shift, FORCE_HIZ_ENABLE_mask);
        SETfield(r700->DB_RENDER_OVERRIDE.u32All, FORCE_DISABLE, FORCE_HIS_ENABLE0_shift, FORCE_HIS_ENABLE0_mask);
@@ -708,6 +705,10 @@ static void r700UpdateCulling(GLcontext * ctx)
             CLEARbit(r700->PA_SU_SC_MODE_CNTL.u32All, FACE_bit); /* default: ccw */
             break;
     }
+
+    /* Winding is inverted when rendering to FBO */
+    if (ctx->DrawBuffer && ctx->DrawBuffer->Name)
+           r700->PA_SU_SC_MODE_CNTL.u32All ^= FACE_bit;
 }
 
 static void r700UpdateLineStipple(GLcontext * ctx)
@@ -1230,13 +1231,8 @@ static void r700UpdatePolygonMode(GLcontext * ctx)
                /* Handle GL_CW (clock wise and GL_CCW (counter clock wise)
                 * correctly by selecting the correct front and back face
                 */
-               if (ctx->Polygon.FrontFace == GL_CCW) {
-                       f = ctx->Polygon.FrontMode;
-                       b = ctx->Polygon.BackMode;
-               } else {
-                       f = ctx->Polygon.BackMode;
-                       b = ctx->Polygon.FrontMode;
-               }
+               f = ctx->Polygon.FrontMode;
+               b = ctx->Polygon.BackMode;
 
                /* Enable polygon mode */
                SETfield(r700->PA_SU_SC_MODE_CNTL.u32All, X_DUAL_MODE, POLY_MODE_shift, POLY_MODE_mask);