8.13. Invocation and Derivative Groups

An invocation group (see the subsection “Control Flow” of section 2 of the
SPIR-V specification) for a compute shader is the set of invocations in a
single local workgroup. For graphics shaders, an invocation group is an
implementation-dependent subset of the set of shader invocations of a given
shader stage which are produced by a single drawing command. For indirect
drawing commands with drawCount greater than one, invocations from
separate draws are in distinct invocation groups.

Note

Because the partitioning of invocations into invocation groups is
implementation-dependent and not observable, applications generally need to
assume the worst case of all invocations in a draw belonging to a single
invocation group.

A derivative group (see the subsection “Control Flow” of section 2 of the
SPIR-V 1.00 Revision 4 specification) for a fragment shader is the set of
invocations generated by a single primitive (point, line, or triangle),
including any helper invocations generated by that primitive. Derivatives are
undefined for a sampled image instruction if the instruction is in flow
control that is not uniform across the derivative group.