Home | History | Annotate | Download | only in source
      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