D3D12_RESOURCE_FLAGS-Aufzählung (d3d12.h)
Definiert Konstanten, die Optionen für das Arbeiten mit Ressourcen angeben.
Syntax
typedef enum D3D12_RESOURCE_FLAGS {
D3D12_RESOURCE_FLAG_NONE = 0,
D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1,
D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2,
D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4,
D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8,
D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10,
D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20,
D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40,
D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80,
D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100
} ;
Konstanten
D3D12_RESOURCE_FLAG_NONE Wert: 0 Es werden keine Optionen angegeben. |
D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET Wert: 0x1 Ermöglicht die Erstellung einer Renderzielansicht für die Ressource; und ermöglicht es der Ressource auch, in den Zustand von D3D12_RESOURCE_STATE_RENDER_TARGETzu wechseln. Einige Adapterarchitekturen weisen zusätzlichen Arbeitsspeicher für Texturen mit diesem Flag zu, um die effektive Bandbreite während des gemeinsamen Renderings zu reduzieren. Diese Eigenschaft kann für Texturen, die nie gerendert werden, nicht von Vorteil sein, oder sie ist für Texturen verfügbar, die mit BC-Formaten komprimiert werden. Ihre Anwendung sollte diese Kennzeichnung vermeiden, wenn das Rendering nie auftritt. Die folgenden Einschränkungen und Interaktionen gelten:
|
D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL Wert: 0x2 Ermöglicht das Erstellen einer Tiefenschablonenansicht für die Ressource sowie das Wechseln der Ressource in den Zustand D3D12_RESOURCE_STATE_DEPTH_WRITE und/oder D3D12_RESOURCE_STATE_DEPTH_READ. Die meisten Adapterarchitekturen weisen zusätzlichen Arbeitsspeicher für Texturen mit dieser Kennzeichnung zu, um die effektive Bandbreite zu reduzieren und Optimierungen für frühe Tiefentests zu maximieren. Ihre Anwendung sollte diese Kennzeichnung vermeiden, wenn Tiefenvorgänge nie auftreten. Die folgenden Einschränkungen und Interaktionen gelten:
|
D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS Wert: 0x4 Ermöglicht die Erstellung einer ungeordneten Zugriffsansicht für die Ressource sowie das Wechseln der Ressource in den Zustand D3D12_RESOURCE_STATE_UNORDERED_ACCESS. Einige Adapterarchitekturen müssen auf weniger effiziente Texturlayouts zurückgreifen, um diese Funktionalität bereitzustellen. Wenn eine Textur selten für ungeordneten Zugriff verwendet wird, lohnt es sich, zwei Texturen herum zu haben und zwischen ihnen zu kopieren. Eine Textur hätte diese Kennzeichnung, während die andere nicht. Ihre Anwendung sollte diese Kennzeichnung vermeiden, wenn ungeordnete Zugriffsvorgänge niemals auftreten. Die folgenden Einschränkungen und Interaktionen gelten:
|
D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE Wert: 0x8 Verhindert, dass eine Shaderressourcenansicht für die Ressource erstellt wird, und deaktiviert den Übergang der Ressource in den Zustand D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE oder D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE. Einige Adapterarchitekturen erhalten Bandbreitenkapazität für Tiefenschablonentexturen, wenn Shaderressourcenansichten ausgeschlossen sind. Wenn eine Textur selten für Shaderressourcen verwendet wird, lohnt es sich möglicherweise, zwei Texturen zu verwenden und zwischen ihnen zu kopieren. Eine Textur hätte diese Kennzeichnung, während die andere nicht. Ihre Anwendung sollte dieses Kennzeichen festlegen, wenn Tiefenschablonentexturen nie aus Shaderressourcenansichten verwendet werden. Die folgenden Einschränkungen und Interaktionen gelten:
|
D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER Wert: 0x10 Ermöglicht die Verwendung der Ressource für adapterübergreifende Daten sowie für features, die von D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESSaktiviert sind. Adapterübergreifende Ressourcen schließen häufig Techniken aus, die die effektive Texturbandbreite während der Nutzung reduzieren, und einige Adapterarchitekturen erfordern möglicherweise ein anderes Zwischenspeicherungsverhalten. Ihre Anwendung sollte diese Kennzeichnung vermeiden, wenn die Ressourcendaten nie mit einem anderen Adapter verwendet werden. Die folgenden Einschränkungen und Interaktionen gelten:
|
D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS Wert: 0x20 Ermöglicht den gleichzeitigen Zugriff auf eine Ressource durch mehrere verschiedene Warteschlangen, Geräte oder Prozesse (z. B. ermöglicht die Verwendung einer Ressource mit ResourceBarrier Übergängen, die gleichzeitig in mehreren Befehlslisten ausgeführt werden). Gleichzeitiger Zugriff ermöglicht mehreren Lesern und einem Autor, solange der Autor die Texel, auf die andere Leser zugreifen, nicht gleichzeitig ändert. Einige Adapterarchitekturen können keine Techniken nutzen, um die effektive Texturbandbreite während der Nutzung zu reduzieren. Ihre Anwendung sollte dieses Kennzeichen jedoch vermeiden, wenn während häufiger, nicht überlappender Schreibvorgänge in Texturen nicht mehrere Leser erforderlich sind. Die Verwendung dieses Flags kann Ressourcenzäune kompromittieren, um Wartezeiten auszuführen und zu verhindern, dass eine Komprimierung mit einer Ressource verwendet wird. Die folgenden Einschränkungen und Interaktionen gelten:
|
D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY Wert: 0x40 Gibt an, dass diese Ressource nur als Decodierungsreferenzframe verwendet werden kann. Sie kann nur durch den Videodecodierungsvorgang in den Videodecodierungsvorgang geschrieben oder gelesen werden. D3D12_VIDEO_DECODE_TIER_1 und D3D12_VIDEO_DECODE_TIER_2 können D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED im D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT-Konfigurationsflagge melden. In diesem Fall muss Ihre Anwendung Referenzframes mit der D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY Ressourcenkennzeichnung zuweisen. D3D12_VIDEO_DECODE_TIER_3 dürfen die [D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED] nicht festlegen. (.. /d3d12video/ne-d3d12video-d3d12_video_decode_configuration_flags) Konfigurationskennzeichnung und darf die Verwendung dieses Ressourcenflags nicht erfordern. |
D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY Wert: 0x80 Gibt an, dass diese Ressource nur als codierter Referenzframe verwendet werden kann. Sie kann vom Videocodierungsvorgang nur in den Videocode geschrieben oder schreibgeschützt werden. |
D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE Wert: 0x100 Erfordert das DirectX 12 Agility SDK 1.608.0 oder höher. Gibt an, dass ein Puffer als Raytracing-Beschleunigungsstruktur verwendet werden soll. Bei Verwendung von erweiterten D3D12-Barrieren dient dieses Flag als Ersatz für D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE , da Puffer keine Layouts/Zustände mehr haben. |
Bemerkungen
Diese Enumeration wird vom Flags Mitglied der D3D12_RESOURCE_DESCverwendet.
Anforderungen
Anforderung | Wert |
---|---|
Header- | d3d12.h |