PFND3D11DDI_DISPATCH funzione di callback (d3d10umddi.h)
La funzione Dispatch esegue lo shader di calcolo.
Sintassi
PFND3D11DDI_DISPATCH Pfnd3d11ddiDispatch;
void Pfnd3d11ddiDispatch(
D3D10DDI_HDEVICE unnamedParam1,
UINT unnamedParam2,
UINT unnamedParam3,
UINT unnamedParam4
)
{...}
Parametri
unnamedParam1
hDevice [in]
Handle per il dispositivo di visualizzazione (contesto grafico).
unnamedParam2
ThreadGroupCountX [in]
Dimensioni, in gruppi di thread, della dimensione x della griglia del gruppo di thread. La dimensione massima è 65535.
unnamedParam3
ThreadGroupCountY [in]
Dimensioni, in gruppi di thread, della dimensione y della griglia del gruppo di thread. La dimensione massima è 65535.
unnamedParam4
ThreadGroupCountZ [in]
Dimensioni, in gruppi di thread, della dimensione z della griglia del gruppo di thread. La dimensione massima è 65535.
Valore restituito
nessuno
Osservazioni
Il driver può usare la funzione di callback pfnSetErrorCb per impostare un codice di errore.
Il runtime Direct3D chiama la funzione Dispatch del driver nel dispositivo di visualizzazione per eseguire lo shader di calcolo. Un compute shader compilato definisce il set di istruzioni da eseguire per thread e il numero di thread da eseguire per gruppo. I parametri del gruppo di thread (ThreadGroupCountX, ThreadGroupCountY e ThreadGroupCountZ) indicano il numero di gruppi di thread da eseguire. Ogni gruppo di thread contiene lo stesso numero di thread, come definito dallo shader di calcolo compilato. I gruppi di thread sono organizzati in una griglia tridimensionale. Il numero totale di gruppi di thread eseguiti dal compute shader compilato è determinato dal calcolo seguente:
ThreadGroupCountX * ThreadGroupCountY * ThreadGroupCountZ
In particolare, se uno dei valori nei parametri del gruppo di thread è 0, la funzione Dispatch non esegue alcuna operazione.
Il driver non deve riscontrare errori, ad eccezione di D3DDDIERR_DEVICEREMOVED. Pertanto, se il driver passa qualsiasi errore, ad eccezione di D3DDDIERR_DEVICEREMOVED, in una chiamata alla funzione pfnSetErrorCb , il runtime Direct3D determina che l'errore è critico. Anche se il dispositivo viene rimosso, il driver non è necessario per restituire D3DDDIERR_DEVICEREMOVED; tuttavia, se la rimozione del dispositivo interferisce con l'operazione di Dispatch (che in genere non deve verificarsi), il driver può restituire D3DDDIERR_DEVICEREMOVED.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Dispatch è supportato a partire dal sistema operativo Windows 7. |
Piattaforma di destinazione | Desktop |
Intestazione | d3d10umddi.h (include D3d10umddi.h) |