Freigeben über


D3D12_DESCRIPTOR_HEAP_FLAGS-Enumeration (d3d12.h)

Gibt Optionen für einen Heap an.

Syntax

typedef enum D3D12_DESCRIPTOR_HEAP_FLAGS {
  D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0,
  D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 0x1
} ;

Konstanten

 
D3D12_DESCRIPTOR_HEAP_FLAG_NONE
Wert: 0
Gibt die Standardverwendung eines Heaps an.
D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE
Wert: 0x1
Das Flag D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE kann optional für einen Deskriptorheap festgelegt werden, um anzugeben, dass es an eine Befehlsliste gebunden ist, um von Shadern darauf zu verweisen. Deskriptorheaps, die ohne dieses Flag erstellt werden, ermöglichen Anwendungen die Möglichkeit, Deskriptoren im CPU-Arbeitsspeicher zu inszenieren, bevor sie in einen sichtbaren Deskriptorheap des Shaders kopiert werden, um sie zu vereinfachen. Es ist jedoch auch in Ordnung, dass Anwendungen Deskriptoren direkt in Shader-Heaps für sichtbare Deskriptor-Heaps erstellen, ohne dass etwas auf der CPU bereitgestellt werden muss.

Für Deskriptorheaps, die über ID3D12GraphicsCommandList::SetDescriptorHeaps gebunden sind, muss das flag D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE festgelegt sein, andernfalls erzeugt die Debugebene einen Fehler.

Deskriptorheaps mit dem flag D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE können nicht als Quellheaps in Aufrufen von ID3D12Device::CopyDescriptors oder ID3D12Device::CopyDescriptorsSimple verwendet werden, da sie sich in WRITE_COMBINE Arbeitsspeicher oder lokalem GPU-Speicher befinden können, was beim Lesen aus sehr ineffizient ist.

Dieses Flag gilt nur für CBV/SRV/UAV-Deskriptorheaps und Samplerdeskriptorheaps. Sie gilt nicht für andere Deskriptorheaptypen, da Shader nicht direkt auf die anderen Typen verweisen. Der Versuch, einen RTV/DSV-Heap mit D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE zu erstellen, führt zu einem Fehler der Debugebene.

Hinweise

Diese Enumeration wird von der D3D12_DESCRIPTOR_HEAP_DESC-Struktur verwendet.

Anforderungen

   
Kopfzeile d3d12.h

Weitere Informationen

Kernaufzählungen

Erstellen von Deskriptorheaps

Deskriptorheaps