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