D3D12_HEAP_TYPE-Enumeration (d3d12.h)
Gibt den Typ des Heaps an. Wenn sie vorhanden sind, befinden sich Heaps in einem bestimmten physischen Speicherpool mit bestimmten CPU-Cacheeigenschaften.
Syntax
typedef enum D3D12_HEAP_TYPE {
D3D12_HEAP_TYPE_DEFAULT = 1,
D3D12_HEAP_TYPE_UPLOAD = 2,
D3D12_HEAP_TYPE_READBACK = 3,
D3D12_HEAP_TYPE_CUSTOM = 4,
D3D12_HEAP_TYPE_GPU_UPLOAD
} ;
Konstanten
D3D12_HEAP_TYPE_DEFAULT Wert: 1 Gibt den Standardheap an. Dieser Heaptyp hat die größte Bandbreite für die GPU, kann jedoch keinen CPU-Zugriff bieten. Die GPU kann aus diesem Pool lesen und in den Arbeitsspeicher schreiben, und Ressourcenübergangsbarrieren können geändert werden. Die meisten Heaps und Ressourcen befinden sich voraussichtlich hier und werden in der Regel über Ressourcen in Uploadheaps aufgefüllt. |
D3D12_HEAP_TYPE_UPLOAD Wert: 2 Gibt einen Heap an, der zum Hochladen verwendet wird. Dieser Heaptyp verfügt über CPU-Zugriff, der für das Hochladen auf die GPU optimiert ist, aber nicht die maximale Bandbreite für die GPU. Dieser Heaptyp eignet sich am besten für CPU-Write-Once- und GPU-Read-Once-Daten. GPU-Read-Once ist jedoch strenger als erforderlich. GPU-read-once-or-from-cache ist ein akzeptabler Anwendungsfall für die Daten. Solche Verwendungen sind jedoch aufgrund unterschiedlicher GPU-Cachedesigns und -größen schwer zu beurteilen. Halten Sie sich im Zweifelsfall an die GPU-Read-Once-Definition, oder profilieren Sie den Unterschied auf vielen GPUs zwischen dem Kopieren der Daten in einen _DEFAULT Heap und dem Lesen der Daten aus einem _UPLOAD Heap. Ressourcen in diesem Heap müssen mit D3D12_RESOURCE_STATE erstellt werden_GENERIC_READ und können davon nicht geändert werden. Die CPU-Adresse für solche Heaps ist für CPU-Lesevorgänge in der Regel nicht effizient. Im Folgenden sind typische Verwendungen für _UPLOAD Heaps aufgeführt:
Im Folgenden sind wahrscheinlich keine guten Verwendungen für _UPLOAD Heaps aufgeführt:
|
D3D12_HEAP_TYPE_READBACK Wert: 3 Gibt einen Heap an, der zum Lesen verwendet wird. Dieser Heaptyp verfügt über CPU-Zugriff, der für das Zurücklesen von Daten von der GPU optimiert ist, aber nicht die maximale Bandbreite für die GPU aufweist. Dieser Heaptyp eignet sich am besten für GPU-Schreibvorgänge, CPU-lesbare Daten. Das Verhalten des CPU-Caches ist rückschreibend, was für mehrere CPU-Lesevorgänge unter Cachezeilen förderlich ist. Ressourcen in diesem Heap müssen mit D3D12_RESOURCE_STATE_COPY_DEST erstellt werden und können nicht geändert werden. |
D3D12_HEAP_TYPE_CUSTOM Wert: 4 Gibt einen benutzerdefinierten Heap an. Die Anwendung kann den Arbeitsspeicherpool und die CPU-Cacheeigenschaften direkt angeben, was für UMA-Optimierungen, Multi-Engine-, Multi-Adapter- oder andere Sonderfälle nützlich sein kann. Dazu wird erwartet, dass die Anwendung die Adapterarchitektur versteht, um die richtige Wahl zu treffen. Weitere Informationen finden Sie unter D3D12_FEATURE_ARCHITECTURE D3D12_FEATURE_DATA_ARCHITECTURE und GetCustomHeapProperties. |
Hinweise
Diese Enumeration wird von den folgenden API-Elementen verwendet:
Die Heaptypen fallen in zwei Kategorien: abstrahierte Heaptypen und benutzerdefinierte Heaptypen.Die folgenden heap-Typen sind abstrahiert:
- D3D12_HEAP_TYPE_DEFAULT
- D3D12_HEAP_TYPE_UPLOAD
- D3D12_HEAP_TYPE_READBACK
- D3D12_HEAP_TYPE_CUSTOM
Beachten Sie, dass Texturen (im Gegensatz zu Puffern) nicht der Heaptyp UPLOAD oder READBACK sein können.
Anforderungen
Anforderung | Wert |
---|---|
Header | d3d12.h |
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für