st/mesa: fix trimming of GL_QUAD_STRIP
authorBrian Paul <brianp@vmware.com>
Tue, 19 Feb 2013 19:24:32 +0000 (12:24 -0700)
committerBrian Paul <brianp@vmware.com>
Fri, 22 Feb 2013 23:49:05 +0000 (16:49 -0700)
We sometimes convert GL_QUAD_STRIP prims into GL_TRIANGLE_STRIP, but
that changes the results of the u_trim_pipe_prim() call.  We need to
pass the original primitive type to the trim function.

Note that OpenGL's GL_x prim type values match Gallium's PIPE_PRIM_x values.

Fixes a failure in the new piglit degenerate-prims test.

Note: This is a candidate for the stable branches.

Reviewed-by: José Fonseca <jfonseca@vmware.com>
src/mesa/state_tracker/st_draw.c

index de62264a16cdee84c3f48c086fc5a0fe2180a3f7..bff8d9b3143a8538619937c1334d71fec70e82ed 100644 (file)
@@ -283,7 +283,7 @@ st_draw_vbo(struct gl_context *ctx,
          /* don't trim, restarts might be inside index list */
          cso_draw_vbo(st->cso_context, &info);
       }
-      else if (u_trim_pipe_prim(info.mode, &info.count))
+      else if (u_trim_pipe_prim(prims[i].mode, &info.count))
          cso_draw_vbo(st->cso_context, &info);
    }