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.