i965: Don't clip everything if FRONT_AND_BACK culling while culling disabled.
authorEric Anholt <eric@anholt.net>
Tue, 21 Jul 2009 00:58:12 +0000 (17:58 -0700)
committerEric Anholt <eric@anholt.net>
Tue, 21 Jul 2009 02:10:20 +0000 (19:10 -0700)
Fixes everything-black with meta_clear_tris on quake4-mpdemo and doom3-demo.

Bug #18844, 22077.
(cherry picked from commit 81d555068408d4343d7627c8bedda5675f09bd21)

src/mesa/drivers/dri/i965/brw_clip.c

index 5cffcebde43de3e10c6c9ca403a4b0b7848bb28e..8fc9f89cb703eb4697b39df47d95e92d13f9fcb9 100644 (file)
@@ -152,7 +152,8 @@ static void upload_clip_prog(struct brw_context *brw)
 
    /* _NEW_POLYGON */
    if (key.primitive == GL_TRIANGLES) {
-      if (ctx->Polygon.CullFaceMode == GL_FRONT_AND_BACK) 
+      if (ctx->Polygon.CullFlag &&
+         ctx->Polygon.CullFaceMode == GL_FRONT_AND_BACK)
         key.clip_mode = BRW_CLIPMODE_REJECT_ALL;
       else {
         GLuint fill_front = CLIP_CULL;