i965: Use last vertex convention for quad provoking vertex on sandybridge
authorZhenyu Wang <zhenyuw@linux.intel.com>
Tue, 4 Jan 2011 07:25:43 +0000 (15:25 +0800)
committerZhenyu Wang <zhenyuw@linux.intel.com>
Tue, 4 Jan 2011 07:56:26 +0000 (15:56 +0800)
Until we know how hw converts quads to polygon in beginning of
3D pipeline, for now unconditionally use last vertex convention.

Fix glean/clipFlat case.

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

index 28549f2..8fc322f 100644 (file)
@@ -151,6 +151,13 @@ GLboolean brwCreateContext( int api,
       MIN2(ctx->Const.FragmentProgram.MaxNativeParameters,
           ctx->Const.FragmentProgram.MaxEnvParams);
 
+   /* Gen6 converts quads to polygon in beginning of 3D pipeline,
+      but we're not sure how it's actually done for vertex order,
+      that affect provoking vertex decision. Always use last vertex
+      convention for quad primitive which works as expected for now. */
+   if (intel->gen == 6)
+       ctx->Const.QuadsFollowProvokingVertexConvention = GL_FALSE;
+
    if (intel->is_g4x || intel->gen >= 5) {
       brw->CMD_VF_STATISTICS = CMD_VF_STATISTICS_GM45;
       brw->CMD_PIPELINE_SELECT = CMD_PIPELINE_SELECT_GM45;