Condividi tramite


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