D3D12_RESOURCE_FLAGS-Enumeration (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 wurden keine Optionen angegeben. |
D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET Wert: 0x1 Ermöglicht das Erstellen einer Renderzielansicht für die Ressource; und ermöglicht außerdem, dass die Ressource in den Zustand der D3D12_RESOURCE_STATE_RENDER_TARGET übergehen kann. Einige Adapterarchitekturen weisen zusätzlichen Arbeitsspeicher für Texturen mit diesem Flag zu, um die effektive Bandbreite während des allgemeinen Renderings zu reduzieren. Diese Eigenschaft ist möglicherweise nicht vorteilhaft für Texturen, die nie in gerendert werden, noch ist sie für Texturen verfügbar, die mit BC-Formaten komprimiert wurden. Ihre Anwendung sollte das Festlegen dieses Flags vermeiden, wenn das Rendern nie erfolgt. Es gelten die folgenden Einschränkungen und Interaktionen:
|
D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL Wert: 0x2 Ermöglicht das Erstellen einer Tiefenschablonenansicht für die Ressource sowie den Übergang 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 diesem Flag zu, um die effektive Bandbreite zu reduzieren und Optimierungen für frühe Tiefentests zu maximieren. Ihre Anwendung sollte das Festlegen dieses Flags vermeiden, wenn nie Tiefenvorgänge ausgeführt werden. Es gelten die folgenden Einschränkungen und Interaktionen:
|
D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS Wert: 0x4 Ermöglicht das Erstellen einer ungeordneten Zugriffsansicht für die Ressource sowie den Übergang 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 einen ungeordneten Zugriff verwendet wird, kann es sich lohnen, zwei Texturen um und zwischen ihnen zu kopieren. Eine Textur hätte dieses Flag, die andere nicht. Ihre Anwendung sollte das Festlegen dieses Flags vermeiden, wenn nicht sortierte Zugriffsvorgänge nie auftreten. Es gelten die folgenden Einschränkungen und Interaktionen:
|
D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE Wert: 0x8 Verhindert das Erstellen einer Shaderressourcenansicht für die Ressource 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 gewinnen Bandbreitenkapazität für Tiefenschablonentexturen, wenn Shaderressourcenansichten ausgeschlossen sind. Wenn eine Textur selten für Shaderressourcen verwendet wird, kann es sich lohnen, zwei Texturen um und zwischen ihnen zu kopieren. Eine Textur hätte dieses Flag, die andere nicht. Ihre Anwendung sollte dieses Flag festlegen, wenn Tiefenschablonentexturen nie aus Shaderressourcenansichten verwendet werden. Es gelten die folgenden Einschränkungen und Interaktionen:
|
D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER Wert: 0x10 Ermöglicht die Verwendung der Ressource für adapterübergreifende Daten sowie für die Features, die von D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS aktiviert werden. 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 es vermeiden, dieses Flag festzulegen, wenn die Ressourcendaten nie mit einem anderen Adapter verwendet werden. Es gelten die folgenden Einschränkungen und Interaktionen:
|
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. die Verwendung einer Ressource mit ResourceBarrier-Übergängen , die in mehreren Gleichzeitig ausgeführten Befehlslisten ausgeführt werden). Der gleichzeitige Zugriff ermöglicht mehrere Leser und einen Writer, solange der Writer nicht gleichzeitig die Texel ändert, auf die andere Leser zugreifen. Einige Adapterarchitekturen können keine Techniken nutzen, um die effektive Texturbandbreite während der Nutzung zu reduzieren. Ihre Anwendung sollte es jedoch vermeiden, dieses Flag festzulegen, wenn bei häufigen, nicht überlappenden Schreibvorgängen in Texturen nicht mehrere Reader erforderlich sind. Die Verwendung dieses Flags kann Ressourceneingrenzungen kompromittieren, um Wartezeiten auszuführen, und die Verwendung von Komprimierungen mit einer Ressource kann verhindert werden. Es gelten die folgenden Einschränkungen und Interaktionen:
|
D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY Wert: 0x40 Gibt an, dass diese Ressource nur als Decodierungsreferenzrahmen verwendet werden darf. Es kann vom Videodecodierungsvorgang in geschrieben oder nur 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-Strukturkonfigurationsflag melden. In diesem Fall muss Ihre Anwendung Referenzframes mit dem Ressourcenflag D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY zuordnen. D3D12_VIDEO_DECODE_TIER_3 darf die [D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED] nicht festlegen. (.. Konfigurationsflag /d3d12video/ne-d3d12video-d3d12_video_decode_configuration_flags) und darf nicht die Verwendung dieses Ressourcenflags erfordern. |
D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY Wert: 0x80 Gibt an, dass diese Ressource nur als Codierungsreferenzrahmen verwendet werden darf. Es kann vom Videocodierungsvorgang in geschrieben oder nur gelesen werden. |
D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE Wert: 0x100 Für die zukünftige Verwendung reserviert. Nicht verwenden. Erfordert das DirectX 12 Agility SDK 1.7 oder höher. Gibt an, dass ein Puffer als Raytracingbeschleunigungsstruktur verwendet werden soll. |
Hinweise
Diese Enumeration wird vom Flags-Member des D3D12_RESOURCE_DESC verwendet.
Anforderungen
Anforderung | Wert |
---|---|
Header | d3d12.h |