1848b8605SmrgXXX this could be converted/formatted for Sphinx someday.
2848b8605SmrgXXX do not use tabs in this file.
3848b8605Smrg
4848b8605Smrg
5848b8605Smrg
6848b8605Smrg            position                     ]
7848b8605Smrg            primary/secondary colors     ]
8848b8605Smrg            generics (normals,           ]
9848b8605Smrg               texcoords, fog)           ] User vertices / arrays
10848b8605Smrg            point size                   ]
11848b8605Smrg            edge flag                    ]
12848b8605Smrg            primitive ID                 } System-generated values
13848b8605Smrg            vertex ID                    }
14848b8605Smrg              | | |
15848b8605Smrg              V V V
16848b8605Smrg      +-------------------+
17848b8605Smrg      |  Vertex shader    |
18848b8605Smrg      +-------------------+
19848b8605Smrg              | | |
20848b8605Smrg              V V V
21848b8605Smrg            position
22848b8605Smrg            clip distance
23848b8605Smrg            generics
24848b8605Smrg            front/back & primary/secondary colors
25848b8605Smrg            point size
26848b8605Smrg            edge flag
27848b8605Smrg            primitive ID
28848b8605Smrg              | | |
29848b8605Smrg              V V V
30848b8605Smrg      +------------------------+
31848b8605Smrg      |     Geometry shader    |
32848b8605Smrg      | (consume vertex ID)    |
33848b8605Smrg      | (may change prim type) |
34848b8605Smrg      +------------------------+
35848b8605Smrg              | | |
36848b8605Smrg              V V V
37848b8605Smrg            [...]
38848b8605Smrg            fb layer
39848b8605Smrg              | | |
40848b8605Smrg              V V V
41848b8605Smrg      +--------------------------+
42848b8605Smrg      |         Clipper          |
43848b8605Smrg      | (consume clip distances) |
44848b8605Smrg      +--------------------------+
45848b8605Smrg              | | |
46848b8605Smrg              V V V
47848b8605Smrg      +-------------------+
48848b8605Smrg      |  Polygon Culling  |
49848b8605Smrg      +-------------------+
50848b8605Smrg              | | |
51848b8605Smrg              V V V
52848b8605Smrg      +-----------------------+
53848b8605Smrg      |    Choose front or    |
54848b8605Smrg      |    back face color    |
55848b8605Smrg      | (consume other color) |
56848b8605Smrg      +-----------------------+
57848b8605Smrg              | | |
58848b8605Smrg              V V V
59848b8605Smrg            [...]
60848b8605Smrg            primary/secondary colors only
61848b8605Smrg              | | |
62848b8605Smrg              V V V
63848b8605Smrg      +-------------------+
64848b8605Smrg      |   Polygon Offset  |
65848b8605Smrg      +-------------------+
66848b8605Smrg              | | |
67848b8605Smrg              V V V
68848b8605Smrg      +----------------------+
69848b8605Smrg      | Unfilled polygons    |
70848b8605Smrg      | (consume edge flags) |
71848b8605Smrg      | (change prim type)   |
72848b8605Smrg      +----------------------+
73848b8605Smrg              | | |
74848b8605Smrg              V V V
75848b8605Smrg            position
76848b8605Smrg            generics
77848b8605Smrg            primary/secondary colors
78848b8605Smrg            point size
79848b8605Smrg            primitive ID
80848b8605Smrg            fb layer
81848b8605Smrg              | | |
82848b8605Smrg              V V V
83848b8605Smrg  +---------------------------------+ 
84848b8605Smrg  | Optional Draw module helpers    |
85848b8605Smrg  | * Polygon Stipple               |
86848b8605Smrg  | * Line Stipple                  |
87848b8605Smrg  | * Line AA/smooth (as tris)      |
88848b8605Smrg  | * Wide lines (as tris)          |
89848b8605Smrg  | * Wide points/sprites (as tris) |
90848b8605Smrg  | * Point AA/smooth (as tris)     |
91848b8605Smrg  | (NOTE: these stages may emit    |
92848b8605Smrg  |  new/extra generic attributes   |
93848b8605Smrg  |  such as texcoords)             |
94848b8605Smrg  +---------------------------------+
95848b8605Smrg              | | |
96848b8605Smrg              V V V
97848b8605Smrg            position                     ]
98848b8605Smrg            generics (+ new/extra ones)  ]
99848b8605Smrg            primary/secondary colors     ] Software rast vertices
100848b8605Smrg            point size                   ]
101848b8605Smrg            primitive ID                 ]
102848b8605Smrg            fb layer                     ]
103848b8605Smrg              | | |
104848b8605Smrg              V V V
105848b8605Smrg      +---------------------+
106848b8605Smrg      | Triangle/Line/Point |
107848b8605Smrg      |    Rasterization    |
108848b8605Smrg      +---------------------+
109848b8605Smrg              | | |
110848b8605Smrg              V V V
111848b8605Smrg            generic attribs
112848b8605Smrg            primary/secondary colors
113848b8605Smrg            primitive ID
114848b8605Smrg            fragment win coord pos   } System-generated values
115848b8605Smrg            front/back face flag     }
116848b8605Smrg              | | |
117848b8605Smrg              V V V
118848b8605Smrg      +-------------------+
119848b8605Smrg      |  Fragment shader  |
120848b8605Smrg      +-------------------+
121848b8605Smrg              | | |
122848b8605Smrg              V V V
123848b8605Smrg            zero or more colors
124848b8605Smrg            zero or one Z value
125848b8605Smrg
126848b8605Smrg
127848b8605SmrgNOTE: The instance ID is not shown.  It can be imagined to be a global variable
128848b8605Smrgaccessible to all shader stages.
129