Partager via


ID3D12Device6 ::SetBackgroundProcessingMode, méthode (d3d12.h)

Définit le mode pour les optimisations du traitement en arrière-plan du pilote.

Syntaxe

HRESULT SetBackgroundProcessingMode(
  [in]  D3D12_BACKGROUND_PROCESSING_MODE Mode,
  [in]  D3D12_MEASUREMENTS_ACTION        MeasurementsAction,
  [in]  HANDLE                           hEventToSignalUponCompletion,
  [out] BOOL                             *pbFurtherMeasurementsDesired
);

Paramètres

[in] Mode

Type : D3D12_BACKGROUND_PROCESSING_MODE

Niveau d’optimisation dynamique à appliquer au travail GPU soumis par la suite.

[in] MeasurementsAction

Type : D3D12_MEASUREMENTS_ACTION

Action à entreprendre avec les résultats de l’instrumentation de charge de travail antérieure.

[in] hEventToSignalUponCompletion

Type : HANDLE

Handle facultatif pour signaler lorsque la fonction est terminée. Par exemple, si MeasurementsAction a la valeur D3D12_MEASUREMENTS_ACTION_COMMIT_RESULTS, hEventToSignalUponCompletion est signalé lorsque toutes les compilations obtenues sont terminées.

[out] pbFurtherMeasurementsDesired

Type : BOOL*

Pointeur facultatif vers une valeur booléenne. La fonction définit la valeur sur true pour indiquer que vous devez continuer le profilage. Sinon, false.

Remarques

Un pilote graphique peut utiliser des threads d’uc d’arrière-plan de priorité inactive pour recompiler dynamiquement les programmes de nuanceur. Cela peut améliorer les performances du GPU en spécialisant le code de nuanceur pour mieux faire correspondre les détails du matériel sur lequel il s’exécute et/ou le contexte dans lequel il est utilisé.

En tant que développeur, vous n’avez rien à faire pour tirer parti de cette fonctionnalité (au fil du temps, comme les pilotes adoptent des optimisations de traitement en arrière-plan, les nuanceurs existants sont automatiquement paramétrés plus efficacement). Toutefois, lorsque vous profilez votre code, vous voudrez probablement appeler SetBackgroundProcessingMode pour vous assurer que les optimisations de traitement en arrière-plan des pilotes ont eu lieu avant de prendre des mesures de minutage. Voici un exemple.

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 utilise automatiquement SetBackgroundProcessingMode, d’abord pour amorcer le système, puis pour empêcher d’autres modifications de se produire au milieu de son analyse. PIX attend un événement (pour s’assurer que toutes les recompilations du nuanceur d’arrière-plan sont terminées) avant de commencer à prendre des mesures.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 10 Build 20348
Serveur minimal pris en charge Windows 10 Build 20348
Plateforme cible Windows
En-tête d3d12.h
Bibliothèque d3d12.lib
DLL d3d12.dll