Metodo ID3D12Device6::SetBackgroundProcessingMode (d3d12.h)
Imposta la modalità per le ottimizzazioni di elaborazione in background del driver.
Sintassi
HRESULT SetBackgroundProcessingMode(
[in] D3D12_BACKGROUND_PROCESSING_MODE Mode,
[in] D3D12_MEASUREMENTS_ACTION MeasurementsAction,
[in] HANDLE hEventToSignalUponCompletion,
[out] BOOL *pbFurtherMeasurementsDesired
);
Parametri
[in] Mode
Tipo: D3D12_BACKGROUND_PROCESSING_MODE
Livello di ottimizzazione dinamica da applicare al lavoro della GPU successivamente inviato.
[in] MeasurementsAction
Tipo: D3D12_MEASUREMENTS_ACTION
Azione da eseguire con i risultati della strumentazione del carico di lavoro precedente.
[in] hEventToSignalUponCompletion
Tipo: HANDLE
Handle facoltativo da segnalare al termine della funzione. Ad esempio, se MeasurementsAction è impostato su D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS, hEventToSignalUponCompletion viene segnalato al termine di tutte le compilazioni risultanti.
[out] pbFurtherMeasurementsDesired
Tipo: BOOL*
Puntatore facoltativo a un valore booleano. La funzione imposta il valore su true
per indicare che è necessario continuare la profilatura, in caso contrario, false
.
Commenti
Un driver grafico può usare thread CPU inattive con priorità inattiva per ricompilare dinamicamente i programmi shader. In questo modo è possibile migliorare le prestazioni della GPU grazie alla specializzazione del codice shader in modo che corrisponda meglio ai dettagli dell'hardware in esecuzione e/o al contesto in cui viene usato.
Come sviluppatore, non è necessario eseguire alcuna operazione per trarre vantaggio da questa funzionalità (nel tempo, poiché i driver adottano ottimizzazioni di elaborazione in background, gli shader esistenti verranno automaticamente ottimizzati in modo più efficiente). Tuttavia, quando si profila il codice, probabilmente si vuole chiamare SetBackgroundProcessingMode per assicurarsi che siano state eseguite ottimizzazioni di elaborazione in background del driver prima di eseguire misurazioni di temporizzazione. Ecco un esempio.
SetBackgroundProcessingMode(
D3D12_BACKGROUND_PROCESSING_MODE_ALLOW_INTRUSIVE_MEASUREMENTS,
D3D_MEASUREMENTS_ACTION_KEEP_ALL,
nullptr, nullptr);
// Here, prime the system by rendering some typical content.
// For example, a level flythrough.
SetBackgroundProcessingMode(
D3D12_BACKGROUND_PROCESSING_MODE_ALLOWED,
D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS,
nullptr, nullptr);
// Here, continue rendering. This time with dynamic optimizations applied.
// And then take your measurements.
PIX usa automaticamente SetBackgroundProcessingMode, prima di tutto per primeare il sistema e quindi impedire che vengano apportate ulteriori modifiche al centro dell'analisi. PiX attende in un evento (per assicurarsi che tutti i ricompilimenti dello shader in background siano stati completati) prima di iniziare a eseguire le misurazioni.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 10 Build 20348 |
Server minimo supportato | Windows 10 Build 20348 |
Piattaforma di destinazione | Windows |
Intestazione | d3d12.h |
Libreria | d3d12.lib |
DLL | d3d12.dll |