| XXX this could be converted/formatted for Sphinx someday. |
| XXX do not use tabs in this file. |
| |
| |
| |
| position ] |
| primary/secondary colors ] |
| generics (normals, ] |
| texcoords, fog) ] User vertices / arrays |
| point size ] |
| edge flag ] |
| primitive ID } System-generated values |
| vertex ID } |
| | | | |
| V V V |
| +-------------------+ |
| | Vertex shader | |
| +-------------------+ |
| | | | |
| V V V |
| position |
| clip distance |
| generics |
| front/back & primary/secondary colors |
| point size |
| edge flag |
| primitive ID |
| | | | |
| V V V |
| +------------------------+ |
| | Geometry shader | |
| | (consume vertex ID) | |
| | (may change prim type) | |
| +------------------------+ |
| | | | |
| V V V |
| [...] |
| fb layer |
| | | | |
| V V V |
| +--------------------------+ |
| | Clipper | |
| | (consume clip distances) | |
| +--------------------------+ |
| | | | |
| V V V |
| +-------------------+ |
| | Polygon Culling | |
| +-------------------+ |
| | | | |
| V V V |
| +-----------------------+ |
| | Choose front or | |
| | back face color | |
| | (consume other color) | |
| +-----------------------+ |
| | | | |
| V V V |
| [...] |
| primary/secondary colors only |
| | | | |
| V V V |
| +-------------------+ |
| | Polygon Offset | |
| +-------------------+ |
| | | | |
| V V V |
| +----------------------+ |
| | Unfilled polygons | |
| | (consume edge flags) | |
| | (change prim type) | |
| +----------------------+ |
| | | | |
| V V V |
| position |
| generics |
| primary/secondary colors |
| point size |
| primitive ID |
| fb layer |
| | | | |
| V V V |
| +---------------------------------+ |
| | Optional Draw module helpers | |
| | * Polygon Stipple | |
| | * Line Stipple | |
| | * Line AA/smooth (as tris) | |
| | * Wide lines (as tris) | |
| | * Wide points/sprites (as tris) | |
| | * Point AA/smooth (as tris) | |
| | (NOTE: these stages may emit | |
| | new/extra generic attributes | |
| | such as texcoords) | |
| +---------------------------------+ |
| | | | |
| V V V |
| position ] |
| generics (+ new/extra ones) ] |
| primary/secondary colors ] Software rast vertices |
| point size ] |
| primitive ID ] |
| fb layer ] |
| | | | |
| V V V |
| +---------------------+ |
| | Triangle/Line/Point | |
| | Rasterization | |
| +---------------------+ |
| | | | |
| V V V |
| generic attribs |
| primary/secondary colors |
| primitive ID |
| fragment win coord pos } System-generated values |
| front/back face flag } |
| | | | |
| V V V |
| +-------------------+ |
| | Fragment shader | |
| +-------------------+ |
| | | | |
| V V V |
| zero or more colors |
| zero or one Z value |
| |
| |
| NOTE: The instance ID is not shown. It can be imagined to be a global variable |
| accessible to all shader stages. |