## 22.2. Geometry Shader Output Primitives

A geometry shader generates primitives in one of three output modes: points,
line strips, or triangle strips. The primitive mode is specified in the
shader using an `OpExecutionMode`

instruction with the `OutputPoints`

,
`OutputLineStrip`

or `OutputTriangleStrip`

modes, respectively. Each
geometry shader must include exactly one output primitive mode.

The vertices output by the geometry shader are assembled into points, lines,
or triangles based on the output primitive type and the resulting primitives
are then further processed as described in Chapter 24, *Rasterization*. If the number of
vertices emitted by the geometry shader is not sufficient to produce a
single primitive, vertices corresponding to incomplete primitives are not
processed by subsequent pipeline stages. The number of vertices output by
the geometry shader is limited to a maximum count specified in the shader.

The maximum output vertex count is specified in the shader using an
`OpExecutionMode`

instruction with the mode set to `OutputVertices`

and the maximum number of vertices that will be produced by the geometry
shader specified as a literal. Each geometry shader must specify a maximum
output vertex count.