[Mesa-dev] RFC: reworked Gallium provoking vertex code
Brian Paul
brianp at vmware.com
Wed May 5 11:34:01 PDT 2010
Commit ddb0e18f6c5582d4d2cc59ffd16ad9c4639ed059 changed some of the
draw module code relating to provoking vertex. The change was in the
right direction, but incomplete (and broke the glean clipFlat test).
The attached patch reworks the provoking vertex code and fixes the
regressions.
This is a bit complicated, but it builds on two principles:
1. When the gallium driver draws a triangle, it always follows the
current provoking vertex convention.
2. Whenever any per-triangle function is called in the draw pipeline,
it always follows the current provoking vertex convention.
Assuming those two things, the other changes build logically on top of
that.
Since gallium does not support first provoking vertex for quads or
quad strips, when we decompose those into triangles we have to obey
rules 1&2 above. So, now there are separate QUAD_FIRST_PV and
QUAD_LAST_PV macros in the draw module's decomposition code instead of
one QUAD macro.
This patch fixes the softpipe driver, but not llvmpipe. I'll do that
next if this looks OK w/ everyone.
I'm also updating the glean clipFlat test to do more exhaustive
testing of provoking vertex.
-Brian
-------------- next part --------------
A non-text attachment was scrubbed...
Name: provoking-vertex.patch
Type: text/x-patch
Size: 25005 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20100505/1551e820/attachment-0001.bin>
More information about the mesa-dev
mailing list