D3D12DDI_BACKGROUND_PROCESSING_MODE_0062-Enumeration (d3d12umddi.h)
Gibt an, welche Ebene der dynamischen Profilerstellung und shader-Neukompilierung für die Hintergrundverarbeitung aktiviert ist.
Standardmäßig plant die Runtime höchstens eine Hintergrundkompilierungsaufgabe gleichzeitig, die mit Leerlaufpriorität ausgeführt wird, um das Risiko dieser Arbeit zu minimieren, wodurch Störungen im Vordergrundrendering auftreten.
Entwickler und Profilerstellungstools können dieses Verhalten mithilfe von Kombinationen dieser Enumerationswerte anpassen.
Syntax
typedef enum D3D12DDI_BACKGROUND_PROCESSING_MODE_0062 {
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_ALLOWED,
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_ALLOW_INTRUSIVE_MEASUREMENTS,
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_DISABLE_BACKGROUND_WORK,
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_DISABLE_ALL_PROFILING
} ;
Konstanten
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_ALLOWED D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_ALLOWED ist der Standardzustand, in dem Treiber Workloads in beliebiger Weise instrumentieren und CPU-Aufgaben (in der Regel PSO-Neukompilierungen) zur Ausführung mit niedriger Priorität an die D3D-Laufzeit übermitteln können. Das Ziel dieses Modus besteht darin, dynamische Optimierungen zu ermöglichen, ohne jedoch die Leistung des Vordergrundrenderings zu beeinträchtigen. |
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_ALLOW_INTRUSIVE_MEASUREMENTS D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_ALLOW_INTRUSIVE_MEASUREMENTS Hinweise, dass der Treiber die Fülle und Vollständigkeit der Instrumentierung über die Vermeidung von Störungen priorisieren sollte, da das derzeit stattfindende Rendering speziell für Trainingszwecke erfolgt und nicht mit der üblichen reibungslosen Leistung ausgeführt werden muss. Diese Art der gewichtigen Profilerstellung wird von Analysetools wie PIX verwendet. Es kann auch von Benchmarks verwendet werden, um den Optimierungszustand zu erwärmen, bevor die tatsächlichen Leistungsmessungen durchgeführt werden, oder direkt von Spielen zu geeigneten Zeiten (z. B. vor dem Training des Treibers durch Rendern unsichtbarer Inhalte hinter einem Menü). |
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_DISABLE_BACKGROUND_WORK D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_DISABLE_BACKGROUND_WORK verhindert die Ausführung von Hintergrundverarbeitungsaufgaben. Wenn dieses Flag zum ersten Mal aktiviert ist, können alle bereits ausgeführten Aufgaben bis zum Abschluss ausgeführt werden. Aufgaben, die die UMD übermittelt hat, aber noch nicht mit der Ausführung begonnen haben, werden abgebrochen, und alle Aufrufe von QueueProcessingWorkCB , die sich bereits in diesem Zustand befinden, führen dazu, dass der Abbruchrückruf sofort aufgerufen wird. Natürlich kann die UMD die Aufgabenübermittlung während des deaktivierten Zustands vollständig überspringen, aber wenn sie Arbeit übermittelt, wird die Laufzeit abgebrochen, anstatt nur den Übermittlungsvorgang zu fehlschlagen, um zu vermeiden, dass die UMD die Synchronisierung zwischen Arbeitsübermittlung und Modusänderungen durchführen muss. Wenn das Disable-Flag gleichzeitig mit der Angabe D3D12DDI_MEASUREMENTS_ACTION_0062_COMMIT_* aktiviert ist, können alle neuen Tasks, die die UMD als Reaktion auf die Commitanforderung generiert, ausgeführt werden, bevor die Deaktivierung wirksam wird. Das Deaktivieren-Flag ist nur gültig, wenn der Entwicklermodus aktiviert ist. |
D3D12DDI_BACKGROUND_PROCESSING_MODE_0062_DISABLE_ALL_PROFILING Zusätzlich zum Anhalten der dynamischen Shader-Neukompilierung gibt dies an, dass der Treiber Verhaltensänderungen vermeiden sollte, die die Leistung beeinträchtigen würden, z. B. die dynamische Optimierung von Cacherichtlinien oder Computeverteilungsmustern. Dies ist für die Verwendung in Profilerstellungssitzungen vorgesehen, bei denen ein A/B-Vergleich stabile Timingergebnisse liefern muss. Dieses Flag ist nur gültig, wenn der Entwicklermodus aktiviert ist. |
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 10, Version 1903 |
Kopfzeile | d3d12umddi.h |