PFND3D11DDI_DISPATCH Rückruffunktion (d3d10umddi.h)
Die Dispatch-Funktion führt den Compute-Shader aus.
Syntax
PFND3D11DDI_DISPATCH Pfnd3d11ddiDispatch;
void Pfnd3d11ddiDispatch(
D3D10DDI_HDEVICE unnamedParam1,
UINT unnamedParam2,
UINT unnamedParam3,
UINT unnamedParam4
)
{...}
Parameter
unnamedParam1
hDevice [in]
Ein Handle für das Anzeigegerät (Grafikkontext).
unnamedParam2
ThreadGroupCountX [in]
Die Größe der x-Dimension des Threadgruppenrasters in Threadgruppen. Die maximale Größe ist 65535.
unnamedParam3
ThreadGroupCountY [in]
Die Größe der y-Dimension des Threadgruppenrasters in Threadgruppen. Die maximale Größe ist 65535.
unnamedParam4
ThreadGroupCountZ [in]
Die Größe der z-Dimension des Threadgruppenrasters in Threadgruppen. Die maximale Größe ist 65535.
Rückgabewert
Keine
Bemerkungen
Der Treiber kann die Rückruffunktion pfnSetErrorCb verwenden, um einen Fehlercode festzulegen.
Die Direct3D-Runtime ruft die Dispatch-Funktion des Treibers auf dem Anzeigegerät auf, um den Compute-Shader auszuführen. Ein kompilierter Compute-Shader definiert den Satz von Anweisungen, die pro Thread ausgeführt werden sollen, und die Anzahl der Threads, die pro Gruppe ausgeführt werden sollen. Die Threadgruppenparameter (ThreadGroupCountX, ThreadGroupCountY und ThreadGroupCountZ) geben an, wie viele Threadgruppen ausgeführt werden sollen. Jede Threadgruppe enthält die gleiche Anzahl von Threads, wie sie vom kompilierten Compute-Shader definiert wird. Die Threadgruppen sind in einem dreidimensionalen Raster organisiert. Die Gesamtanzahl von Threadgruppen, die der kompilierte Compute-Shader ausführt, wird durch die folgende Berechnung bestimmt:
ThreadGroupCountX * ThreadGroupCountY * ThreadGroupCountZ
Insbesondere, wenn einer der Werte in den Threadgruppenparametern 0 ist, macht die Dispatch-Funktion nichts.
Für den Treiber sollte kein Fehler auftreten, mit Ausnahme von D3DDDIERR_DEVICEREMOVED. Wenn der Treiber in einem Aufruf der PfnSetErrorCb-Funktion einen Fehler mit Ausnahme von D3DDDIERR_DEVICEREMOVED übergibt, ermittelt die Direct3D-Runtime daher, dass der Fehler kritisch ist. Selbst wenn das Gerät entfernt wird, muss der Treiber nicht D3DDDIERR_DEVICEREMOVED zurückgeben. Wenn das Entfernen des Geräts jedoch den Vorgang von Dispatch beeinträchtigt (was normalerweise nicht erfolgen sollte), kann der Treiber D3DDDIERR_DEVICEREMOVED zurückgeben.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Die Verteilung wird ab dem Windows 7-Betriebssystem unterstützt. |
Zielplattform | Desktop |
Kopfzeile | d3d10umddi.h (einschließlich D3d10umddi.h) |