The geometry shader operates on a group of vertices and their associated data assembled from a single input primitive, and emits zero or more output primitives and the group of vertices and their associated data required for each output primitive.
A geometry shader is invoked at least once for each primitive produced by
the tessellation stages, or at least once for each primitive generated by
primitive assembly when tessellation is not in use. The number
of geometry shader invocations per input primitive is determined from the
invocation count of the geometry shader specified by the
OpExecutionMode
Invocations
in the geometry shader. If the
invocation count is not specified, then a default of one invocation is
executed.