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 |