gallium: rework provoking vertex code
authorBrian Paul <brianp@vmware.com>
Thu, 6 May 2010 00:19:06 +0000 (18:19 -0600)
committerBrian Paul <brianp@vmware.com>
Thu, 6 May 2010 00:19:06 +0000 (18:19 -0600)
commitcb136a93aba4dc64db7e446b0fbc36c9172e4017
treef899c682980b4af56e4dd0c7cd2d08cefb4efce3
parenta8bb49562938e94459f398a1733a76eb9c690f6c
gallium: rework provoking vertex code

Builds on commit ddb0e18f6c5582d4d2cc59ffd16ad9c4639ed059 and fixes
regressions in glean clipFlat test.

We assume that Gallium drivers observe flatshade_first for all triangles
and that all the assorted per-triangle calls in the 'draw' module also
follow flatshade_first.  Everything else builds on those rules.

Gallium does not use follow flatshade_first for GL quads, quad strips
and polygons; the "last" vertex is always the provoking vertex for those
prims.  So now there are separate QUAD_FIRST_PV and QUAD_LAST_PV macros
in the draw primitive decomposition code instead of one QUAD macro.
src/gallium/auxiliary/draw/draw_pipe.c
src/gallium/auxiliary/draw/draw_pipe_clip.c
src/gallium/auxiliary/draw/draw_pipe_vbuf.c
src/gallium/auxiliary/draw/draw_pt_decompose.h
src/gallium/auxiliary/draw/draw_pt_vcache.c
src/gallium/drivers/softpipe/sp_prim_vbuf.c
src/gallium/drivers/softpipe/sp_setup.c