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 |