aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/draw/draw_pipe_cull.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/auxiliary/draw/draw_pipe_cull.c')
-rw-r--r--src/gallium/auxiliary/draw/draw_pipe_cull.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/draw/draw_pipe_cull.c b/src/gallium/auxiliary/draw/draw_pipe_cull.c
index 3e8e4589597..318d743dbbf 100644
--- a/src/gallium/auxiliary/draw/draw_pipe_cull.c
+++ b/src/gallium/auxiliary/draw/draw_pipe_cull.c
@@ -181,6 +181,16 @@ static void cull_tri( struct draw_stage *stage,
/* triangle is not culled, pass to next stage */
stage->next->tri( stage->next, header );
}
+ } else {
+ /*
+ * With zero area, this is back facing (because the spec says
+ * it's front facing if sign is positive?).
+ * Some apis apparently do not allow us to cull zero area tris
+ * here, in case of fill mode line (which is rather lame).
+ */
+ if ((PIPE_FACE_BACK & cull_stage(stage)->cull_face) == 0) {
+ stage->next->tri( stage->next, header );
+ }
}
}
}