SV_GroupIndex
Der "vereinfachte" Index eines Compute-Shaderthreads innerhalb einer Threadgruppe, wodurch der mehrdimensionale SV_GroupThreadID in einen 1D-Wert umgewandelt wird. SV_GroupIndex variiert von 0 bis (numthreadsX * numthreadsY * numThreadsZ) – 1.
type
Typ |
---|
uint |
Bemerkungen
SV_GroupIndex = SV_GroupThreadID.z*dimx*dimy +
SV_GroupThreadID.y*dimx +
SV_GroupThreadID.x
Dabei sind dimx und dimy die Dimensionen, die im numthreads-Attribut für den Einstiegspunkt angegeben sind.
Dieser Systemwert ist optional. Durch seine Verwendung wird jedoch sichergestellt, dass ein Thread nur in den zugewiesenen Speicherbereich in der gruppenbasierten Variablen schreibt.
Die folgende Abbildung zeigt die Beziehung zwischen den parametern, die an ID3D11DeviceContext::D ispatch, Dispatch(5,3,2), den im numthreads-Attribut angegebenen Werten, numthreads(10,8,3) und Werten, die für die threadbezogenen Systemwerte (SV_GroupIndex,SV_DispatchThreadID,SV_GroupThreadID,SV_GroupID) an den Compute-Shader übergeben werden.
Diese Funktion wird in den folgenden Shadertypen unterstützt:
Scheitelpunkt | Hull | Domain | Geometrie | Pixel | Compute |
---|---|---|---|---|---|
x |
Siehe auch