Freigeben über


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:

  • 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, 4 KB-Ausrichtung verwendet werden, 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, noch mit Heaps, die D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES oder D3D12_HEAP_FLAG_ALLOW_DISPLAYhaben.

  • Verhindert die Verwendung von WriteToSubresource und ReadFromSubresource.

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

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:

  • Muss mit D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCILverwendet werden.

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:

  • Kann nicht mit D3D12_RESOURCE_DIMENSION_BUFFERverwendet werden; Puffer weisen jedoch immer die Eigenschaften auf, die durch dieses Flag dargestellt werden.

  • Kann nicht mit MSAA-Texturen verwendet werden.

  • Kann nicht mit D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCILverwendet werden.

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

Siehe auch