Freigeben über


D3D12DDI_BARRIER_LAYOUT-Enumeration (d3d12umddi.h)

Ein D3D12DDI_BARRIER_LAYOUT-Wert beschreibt die möglichen Layouts, die von D3D12-Unterressourcen in Bezug auf Texturbarrieren verwendet werden. Layouts gelten nur für Texturressourcen.

Syntax

typedef enum D3D12DDI_BARRIER_LAYOUT {
  D3D12DDI_BARRIER_LAYOUT_UNDEFINED,
  D3D12DDI_BARRIER_LAYOUT_COMMON,
  D3D12DDI_BARRIER_LAYOUT_PRESENT,
  D3D12DDI_BARRIER_LAYOUT_GENERIC_READ,
  D3D12DDI_BARRIER_LAYOUT_RENDER_TARGET,
  D3D12DDI_BARRIER_LAYOUT_UNORDERED_ACCESS,
  D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE,
  D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_READ,
  D3D12DDI_BARRIER_LAYOUT_SHADER_RESOURCE,
  D3D12DDI_BARRIER_LAYOUT_COPY_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_COPY_DEST,
  D3D12DDI_BARRIER_LAYOUT_RESOLVE_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_RESOLVE_DEST,
  D3D12DDI_BARRIER_LAYOUT_SHADING_RATE_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_READ,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_WRITE,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_READ,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_READ,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_DIRECT_QUEUE_GENERIC_READ_COMPUTE_QUEUE_ACCESSIBLE,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_DEST,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_SHADER_RESOURCE,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_PIXEL_SHADER_RESOURCE
} ;

Konstanten

 
D3D12DDI_BARRIER_LAYOUT_UNDEFINED
Bietet Unterstützung für Layoutänderungen von Untergeordneten Ressourcen, bei denen das vorherige Layout irrelevant oder undefiniert ist. In der Regel wird dies für die Befehle "Full-Subresource" oder "Full-Resource Clear", "Discard" und "Copy" verwendet.

Ein Layoutübergang, bei dem sowohl LayoutBefore als auch LayoutAfter auf D3D12_BARRIER_LAYOUT_UNDEFINED festgelegt sind, weist auf eine Barriere hin, die nur auf den Arbeitsspeicher zugreift. Viele Lese-/Schreibvorgänge unterstützen D3D12_BARRIER_LAYOUT_COMMON. Insbesondere Kopierbefehle können mithilfe des D3D12_BARRIER_LAYOUT_COMMONoder D3D12_BARRIER_LAYOUT_COPY in Texturen schreiben. Eine Nur-Speicherzugriffsbarriere kann verwendet werden, um Kopiervorgänge in eine Textur zu leeren, ohne das Texturlayout zu ändern.
D3D12DDI_BARRIER_LAYOUT_COMMON
Dies ist das Layout, das von D3D12_RESOURCE_STATE_COMMON verwendet wird. Unterressourcen mit diesem Layout sind in jedem Warteschlangentyp lesbar, ohne dass eine Layoutänderung erforderlich ist. Sie können auch als Kopierziel in jedem Warteschlangentyp geschrieben werden.

Die Swapchainpräsentation erfordert, dass der Hintergrundpuffer D3D12_BARRIER_LAYOUT_COMMON verwendet.
D3D12DDI_BARRIER_LAYOUT_PRESENT
Alias für D3D12_BARRIER_LAYOUT_COMMON.
D3D12DDI_BARRIER_LAYOUT_GENERIC_READ
Bietet Unterstützung für alle schreibgeschützten Zugriffe (z. B. SHADER_RESOURCE, COPY_SOURCE). Dieser Wert sollte nur für Texturen verwendet werden, die mehrere gleichzeitige Lesezugriffe erfordern, da dies möglicherweise nicht so optimal ist wie ein spezifisches Leselayout.
D3D12DDI_BARRIER_LAYOUT_RENDER_TARGET
Entspricht dem layout, das von D3D12_RESOURCE_STATE_RENDER_TARGET verwendet wird.
D3D12DDI_BARRIER_LAYOUT_UNORDERED_ACCESS
Entspricht dem layout, das von D3D12_RESOURCE_STATE_UNORDERED_ACCESS verwendet wird.
D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE
Entspricht dem layout, das von D3D12_RESOURCE_STATE_DEPTH_WRITE verwendet wird.
D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_READ
Entspricht dem layout, das von D3D12_RESOURCE_STATE_DEPTH_READ verwendet wird.
D3D12DDI_BARRIER_LAYOUT_SHADER_RESOURCE
Entspricht dem Layout, das von D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE und D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE verwendet wird.
D3D12DDI_BARRIER_LAYOUT_COPY_SOURCE
Entspricht dem layout, das von D3D12_RESOURCE_STATE_COPY_SOURCE verwendet wird.
D3D12DDI_BARRIER_LAYOUT_COPY_DEST
Entspricht dem layout, das von D3D12_RESOURCE_STATE_COPY_DEST verwendet wird.
D3D12DDI_BARRIER_LAYOUT_RESOLVE_SOURCE
Entspricht dem layout, das von D3D12DDI_RESOURCE_STATE_RESOLVE_SOURCE verwendet wird.
D3D12DDI_BARRIER_LAYOUT_RESOLVE_DEST
Entspricht dem layout, das von D3D12DDI_RESOURCE_STATE_RESOLVE_DEST verwendet wird.
D3D12DDI_BARRIER_LAYOUT_SHADING_RATE_SOURCE
Entspricht dem layout, das von D3D12DDI_RESOURCE_STATE_0062_SHADING_RATE_SOURCE verwendet wird.
D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_READ
Entspricht dem layout, das von D3D12_RESOURCE_STATE_VIDEO_DECODE_READ verwendet wird.
D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_WRITE
Entspricht dem layout, das von D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE verwendet wird.
D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_READ
Entspricht dem layout, das von D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ verwendet wird.
D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE
Entspricht dem layout, das von D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE verwendet wird.
D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_READ
Entspricht dem layout, das von D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ verwendet wird.
D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE
Entspricht dem layout, das von D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE verwendet wird.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON
Unterstützt die allgemeine (barrierefreie) Verwendung nur für direkte Warteschlangen. Dieser Wert ist optimaler als der allgemeinere D3D12DDI_BARRIER_LAYOUT_COMMON. Kann nur in Barrieren für direkte Warteschlangen verwendet werden.

Beachten Sie, dass dies nicht für Present verwendet werden kann. D3D12_BARRIER_LAYOUT_COMMON (auch als D3D12_BARRIER_LAYOUT_PRESENT bezeichnet) ist weiterhin das erforderliche Layout für Präsentation.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ
Identisch mit D3D12_BARRIER_LAYOUT_GENERIC_READ mit Ausnahme von Optimierungen, die für direkte Warteschlangen spezifisch sind. Kann nur in Barrieren für direkte Warteschlangen verwendet werden.

Darüber hinaus bietet D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ Unterstützung für schreibgeschützte Tiefe, Quelle mit Schattierungsrate und Auflösen von Quellzugriffen für direkte Warteschlangen.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS
Identisch mit D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS mit Ausnahme von Optimierungen, die für direkte Warteschlangen spezifisch sind. Kann nur in Barrieren für direkte Warteschlangen verwendet werden.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE
Identisch mit D3D12_BARRIER_LAYOUT_SHADER_RESOURCE mit Ausnahme von Optimierungen, die für direkte Warteschlangen spezifisch sind. Kann nur in Barrieren für direkte Warteschlangen verwendet werden.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE
Identisch mit D3D12_BARRIER_LAYOUT_COPY_SOURCE mit Ausnahme von Optimierungen, die für direkte Warteschlangen spezifisch sind. Kann nur in Barrieren für direkte Warteschlangen verwendet werden.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST
Identisch mit D3D12_BARRIER_LAYOUT_COPY_DEST mit Ausnahme von Optimierungen, die für direkte Warteschlangen spezifisch sind. Kann nur in Barrieren für direkte Warteschlangen verwendet werden. Kann eine kostspielige und unnötige Dekomprimierung bei einigen Layoutübergängen für Ressourcen mit dem nächsten Zugriff in einer direkten Warteschlange verhindern.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON
Unterstützt die allgemeine (barrierefreie) Verwendung nur für Computewarteschlangen. Kann optimaler sein als die allgemeinere D3D12_BARRIER_LAYOUT_COMMON. Kann nur in Barrieren für Computewarteschlangen verwendet werden.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ
Identisch mit D3D12_BARRIER_LAYOUT_GENERIC_READ mit Ausnahme von Optimierungen, die für Computewarteschlangen spezifisch sind. Kann nur in Barrieren für Computewarteschlangen verwendet werden.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS
Identisch mit D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS mit Ausnahme von Optimierungen, die für Computewarteschlangen spezifisch sind. Kann nur in Barrieren für Computewarteschlangen verwendet werden.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE
Identisch mit D3D12_BARRIER_LAYOUT_SHADER_RESOURCE mit Ausnahme von Optimierungen, die für Computewarteschlangen spezifisch sind. Kann nur in Barrieren für Computewarteschlangen verwendet werden.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE
Identisch mit D3D12_BARRIER_LAYOUT_COPY_SOURCE mit Ausnahme von Optimierungen, die für Computewarteschlangen spezifisch sind. Kann nur in Barrieren für Computewarteschlangen verwendet werden.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST
Identisch mit D3D12_BARRIER_LAYOUT_COPY_DEST mit Ausnahme von Optimierungen, die für Computewarteschlangen spezifisch sind. Kann nur in Barrieren für Computewarteschlangen verwendet werden.
D3D12DDI_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON
Unterstützt die allgemeine (barrierefreie) Verwendung nur für Videowarteschlangen. Kann optimaler sein als die allgemeinere D3D12_BARRIER_LAYOUT_COMMON. Kann nur in Barrieren in Videowarteschlangen verwendet werden.
D3D12DDI_BARRIER_LAYOUT_LEGACY_DIRECT_QUEUE_GENERIC_READ_COMPUTE_QUEUE_ACCESSIBLE
Unterstützt einen intern übersetzten Legacyressourcenstatus. Diesem Wert werden keine erweiterten Barriere-APIs zugeordnet.
D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_SOURCE
Unterstützt einen intern übersetzten Legacyressourcenstatus. Diesem Wert werden keine erweiterten Barriere-APIs zugeordnet.
D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_DEST
Unterstützt einen intern übersetzten Legacyressourcenstatus. Diesem Wert werden keine erweiterten Barriere-APIs zugeordnet.
D3D12DDI_BARRIER_LAYOUT_LEGACY_SHADER_RESOURCE
Unterstützt einen intern übersetzten Legacyressourcenstatus. Diesem Wert werden keine erweiterten Barriere-APIs zugeordnet.
D3D12DDI_BARRIER_LAYOUT_LEGACY_PIXEL_SHADER_RESOURCE
Unterstützt einen intern übersetzten Legacyressourcenstatus. Diesem Wert werden keine erweiterten Barriere-APIs zugeordnet.

Hinweise

Pufferressourcen verfügen unabhängig vom Zugriffstyp nur über ein lineares Layout.

Ressourcenlayouts müssen mit dem Typ der Warteschlange kompatibel sein, die den Layoutübergang durchführt.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 11 (WDDM 3.0)
Kopfzeile d3d12umddi.h

Weitere Informationen

D3D12DDI_TEXTURE_BARRIER_0088