Freigeben über


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:

  • Entweder muss das Texturformat Tiefenschablonenfunktionen auf der aktuellen Featureebene unterstützen. Oder wenn das Format ein typloses Format ist, muss ein Format innerhalb derselben typlosen Gruppe Tiefenschablonenfunktionen auf der aktuellen Featureebene unterstützen.

  • Kann nicht mit D3D12_RESOURCE_DIMENSION_BUFFER verwendet werden, 4KB-Ausrichtung, D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET, D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS, D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS, D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, oder mit Heaps verwendet, die D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES oder D3D12_HEAP_FLAG_ALLOW_DISPLAY.

  • Schließt die Verwendung von WriteToSubresource und ReadFromSubresource aus.

  • Verhindert das GPU-Kopieren einer Unterregion. CopyTextureRegion muss eine ganze Unterressource mit diesem Flag in oder aus Ressourcen kopieren.

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:

  • Muss mit D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL verwendet werden.

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:

  • Kann nicht mit D3D12_RESOURCE_DIMENSION_BUFFER verwendet werden. Puffer verfügen jedoch immer über die Eigenschaften, die von diesem Flag dargestellt werden.

  • Kann nicht mit MSAA-Texturen verwendet werden.

  • Kann nicht mit D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL verwendet werden.

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

Weitere Informationen