ID3D11DeviceContext::D ispatch-Methode (d3d11.h)
Führen Sie eine Befehlsliste aus einer Threadgruppe aus.
Syntax
void Dispatch(
[in] UINT ThreadGroupCountX,
[in] UINT ThreadGroupCountY,
[in] UINT ThreadGroupCountZ
);
Parameter
[in] ThreadGroupCountX
Typ: UINT
Die Anzahl der Gruppen, die in x-Richtung verteilt werden. ThreadGroupCountX muss kleiner oder gleich D3D11_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION (65535) sein.
[in] ThreadGroupCountY
Typ: UINT
Die Anzahl der Gruppen, die in y-Richtung verteilt werden. ThreadGroupCountY muss kleiner oder gleich D3D11_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION (65535) sein.
[in] ThreadGroupCountZ
Typ: UINT
Die Anzahl der Gruppen, die in z-Richtung verteilt werden. ThreadGroupCountZ muss kleiner oder gleich D3D11_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION (65535) sein. In Featureebene 10 muss der Wert für ThreadGroupCountZ 1 sein.
Rückgabewert
Keine
Bemerkungen
Sie rufen die Dispatch-Methode auf, um Befehle in einem Compute-Shader auszuführen. Ein Compute-Shader kann in vielen Threads parallel innerhalb einer Threadgruppe ausgeführt werden. Indizieren Sie einen bestimmten Thread innerhalb einer Threadgruppe mithilfe eines 3D-Vektors, der von (x,y,z) angegeben wird.
Gehen Sie in der folgenden Abbildung von einer Threadgruppe mit 50 Threads aus, deren Größe durch (5,5,2) angegeben wird. Ein einzelner Thread wird aus einer Threadgruppe mit 50 Threads identifiziert, wobei der Vektor (4,1,1) verwendet wird.
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.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Windows |
Kopfzeile | d3d11.h |
Bibliothek | D3D11.lib |