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. 129