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.

Abbildung der Beziehung zwischen Dispatch, Threadgruppen und Threads

Diese Funktion wird in den folgenden Shadertypen unterstützt:

Scheitelpunkt Hull Domain Geometrie Pixel Compute
x

 

Siehe auch

Semantik

Shadermodell 5