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