D3D12_ROOT_SIGNATURE_FLAGS-Enumeration (d3d12.h)

Gibt Optionen für das Layout der Stammsignatur an.

Syntax

typedef enum D3D12_ROOT_SIGNATURE_FLAGS {
  D3D12_ROOT_SIGNATURE_FLAG_NONE = 0,
  D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x1,
  D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x2,
  D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x4,
  D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x8,
  D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10,
  D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20,
  D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40,
  D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE = 0x80,
  D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS = 0x100,
  D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS = 0x200,
  D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED = 0x400,
  D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED = 0x800
} ;

Konstanten

 
D3D12_ROOT_SIGNATURE_FLAG_NONE
Wert: 0
Gibt das Standardverhalten an.
D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT
Wert: 0x1
Die App entscheidet sich für die Verwendung des Eingabe-Assemblers (erfordert ein Eingabelayout, das eine Reihe von Vertexpufferbindungen definiert). Das Weglassen dieses Flags kann dazu führen, dass ein Stammargumentspeicher auf einer Hardware gespeichert wird. Lassen Sie dieses Flag weg, wenn der Eingabeassemierer nicht erforderlich ist, obwohl die Optimierung geringfügig ist.
D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS
Wert: 0x2
Verweigert dem Vertex-Shader den Zugriff auf die Stammsignatur.
D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS
Wert: 0x4
Verweigert dem Hull-Shader den Zugriff auf die Stammsignatur.
D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS
Wert: 0x8
Verweigert dem Domänen-Shader den Zugriff auf die Stammsignatur.
D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS
Wert: 0x10
Verweigert dem Geometrie-Shader den Zugriff auf die Stammsignatur.
D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS
Wert: 0x20
Verweigert dem Pixel-Shader den Zugriff auf die Stammsignatur.
D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT
Wert: 0x40
Die App aktiviert die Verwendung der Streamausgabe. Das Weglassen dieses Flags kann dazu führen, dass ein Stammargumentspeicher auf einer Hardware gespeichert wird. Lassen Sie dieses Flag weg, wenn die Streamausgabe nicht erforderlich ist, obwohl die Optimierung geringfügig ist.
D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE
Wert: 0x80
Die Stammsignatur soll mit Raytracing-Shadern verwendet werden, um Ressourcenbindungen zu definieren, die aus Shaderdatensätzen in Shadertabellen stammen. Dieses Flag kann nicht mit anderen Stammsignaturflags kombiniert werden, die alle mit der Grafikpipeline zusammenhängen. Das Fehlen des Flags bedeutet, dass die Stammsignatur mit Grafiken oder Computedaten verwendet werden kann, wobei die Computeversion auch für die globale Stammsignatur von Raytracing freigegeben wird.
D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS
Wert: 0x100
Verweigert dem Verstärkungsshader den Zugriff auf die Stammsignatur.
D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS
Wert: 0x200
Verweigert dem Mesh-Shader den Zugriff auf die Stammsignatur.
D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED
Wert: 0x400
Die Shader dürfen den CBV/SRV/UAV-Deskriptor-Heap direkt mithilfe der integrierten Variablen ResourceDescriptorHeap indizieren.
D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED
Wert: 0x800
Die Shader dürfen den Samplerdeskriptor-Heap mithilfe der integrierten Variablen SamplerDescriptorHeap direkt indizieren.

Hinweise

Diese Enumeration wird in der D3D12_ROOT_SIGNATURE_DESC-Struktur verwendet.

Der Wert beim Verweigern des Zugriffs auf Shaderstufen ist eine geringfügige Optimierung auf einigen Hardwarekomponenten. Wenn beispielsweise das flag D3D12_SHADER_VISIBILITY_ALL festgelegt wurde, um die Stammsignatur an alle Shaderstufen zu übertragen, kann das Verweigern des Zugriffs dies überschreiben und die Hardware einige Arbeit sparen. Wenn der Shader so einfach ist, dass keine Stammsignaturressourcen erforderlich sind, kann auch hier das Verweigern des Zugriffs verwendet werden.

Anforderungen

   
Kopfzeile d3d12.h

Weitere Informationen

Kernaufzählungen

Erstellen einer Stammsignatur

D3D12_ROOT_SIGNATURE_DESC