1 | XXX this could be converted/formatted for Sphinx someday.
|
---|
2 | XXX do not use tabs in this file.
|
---|
3 |
|
---|
4 |
|
---|
5 |
|
---|
6 | position ]
|
---|
7 | primary/secondary colors ]
|
---|
8 | generics (normals, ]
|
---|
9 | texcoords, fog) ] User vertices / arrays
|
---|
10 | point size ]
|
---|
11 | edge flag ]
|
---|
12 | primitive ID } System-generated values
|
---|
13 | vertex ID }
|
---|
14 | | | |
|
---|
15 | V V V
|
---|
16 | +-------------------+
|
---|
17 | | Vertex shader |
|
---|
18 | +-------------------+
|
---|
19 | | | |
|
---|
20 | V V V
|
---|
21 | position
|
---|
22 | clip distance
|
---|
23 | generics
|
---|
24 | front/back & primary/secondary colors
|
---|
25 | point size
|
---|
26 | edge flag
|
---|
27 | primitive ID
|
---|
28 | | | |
|
---|
29 | V V V
|
---|
30 | +------------------------+
|
---|
31 | | Geometry shader |
|
---|
32 | | (consume vertex ID) |
|
---|
33 | | (may change prim type) |
|
---|
34 | +------------------------+
|
---|
35 | | | |
|
---|
36 | V V V
|
---|
37 | [...]
|
---|
38 | fb layer
|
---|
39 | | | |
|
---|
40 | V V V
|
---|
41 | +--------------------------+
|
---|
42 | | Clipper |
|
---|
43 | | (consume clip distances) |
|
---|
44 | +--------------------------+
|
---|
45 | | | |
|
---|
46 | V V V
|
---|
47 | +-------------------+
|
---|
48 | | Polygon Culling |
|
---|
49 | +-------------------+
|
---|
50 | | | |
|
---|
51 | V V V
|
---|
52 | +-----------------------+
|
---|
53 | | Choose front or |
|
---|
54 | | back face color |
|
---|
55 | | (consume other color) |
|
---|
56 | +-----------------------+
|
---|
57 | | | |
|
---|
58 | V V V
|
---|
59 | [...]
|
---|
60 | primary/secondary colors only
|
---|
61 | | | |
|
---|
62 | V V V
|
---|
63 | +-------------------+
|
---|
64 | | Polygon Offset |
|
---|
65 | +-------------------+
|
---|
66 | | | |
|
---|
67 | V V V
|
---|
68 | +----------------------+
|
---|
69 | | Unfilled polygons |
|
---|
70 | | (consume edge flags) |
|
---|
71 | | (change prim type) |
|
---|
72 | +----------------------+
|
---|
73 | | | |
|
---|
74 | V V V
|
---|
75 | position
|
---|
76 | generics
|
---|
77 | primary/secondary colors
|
---|
78 | point size
|
---|
79 | primitive ID
|
---|
80 | fb layer
|
---|
81 | | | |
|
---|
82 | V V V
|
---|
83 | +---------------------------------+
|
---|
84 | | Optional Draw module helpers |
|
---|
85 | | * Polygon Stipple |
|
---|
86 | | * Line Stipple |
|
---|
87 | | * Line AA/smooth (as tris) |
|
---|
88 | | * Wide lines (as tris) |
|
---|
89 | | * Wide points/sprites (as tris) |
|
---|
90 | | * Point AA/smooth (as tris) |
|
---|
91 | | (NOTE: these stages may emit |
|
---|
92 | | new/extra generic attributes |
|
---|
93 | | such as texcoords) |
|
---|
94 | +---------------------------------+
|
---|
95 | | | |
|
---|
96 | V V V
|
---|
97 | position ]
|
---|
98 | generics (+ new/extra ones) ]
|
---|
99 | primary/secondary colors ] Software rast vertices
|
---|
100 | point size ]
|
---|
101 | primitive ID ]
|
---|
102 | fb layer ]
|
---|
103 | | | |
|
---|
104 | V V V
|
---|
105 | +---------------------+
|
---|
106 | | Triangle/Line/Point |
|
---|
107 | | Rasterization |
|
---|
108 | +---------------------+
|
---|
109 | | | |
|
---|
110 | V V V
|
---|
111 | generic attribs
|
---|
112 | primary/secondary colors
|
---|
113 | primitive ID
|
---|
114 | fragment win coord pos } System-generated values
|
---|
115 | front/back face flag }
|
---|
116 | | | |
|
---|
117 | V V V
|
---|
118 | +-------------------+
|
---|
119 | | Fragment shader |
|
---|
120 | +-------------------+
|
---|
121 | | | |
|
---|
122 | V V V
|
---|
123 | zero or more colors
|
---|
124 | zero or one Z value
|
---|
125 |
|
---|
126 |
|
---|
127 | NOTE: The instance ID is not shown. It can be imagined to be a global variable
|
---|
128 | accessible to all shader stages.
|
---|