D3D12DDI_BARRIER_ACCESS-Enumeration (d3d12umddi.h)

Wichtig

Einige Informationen beziehen sich auf ein Vorabrelease-Produkt, das vor der kommerziellen Freigabe wesentlich geändert werden kann. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.

Ein D3D12DDI_BARRIER_ACCESS Wert ist ein bitweiser OR der folgenden Felder, die den Ressourcenzugriff in Bezug auf eine Barriere angeben.

Syntax

typedef enum D3D12DDI_BARRIER_ACCESS {
  D3D12DDI_BARRIER_ACCESS_COMMON = 0x0,
  D3D12DDI_BARRIER_ACCESS_VERTEX_BUFFER = 0x1,
  D3D12DDI_BARRIER_ACCESS_CONSTANT_BUFFER = 0x2,
  D3D12DDI_BARRIER_ACCESS_INDEX_BUFFER = 0x4,
  D3D12DDI_BARRIER_ACCESS_RENDER_TARGET = 0x8,
  D3D12DDI_BARRIER_ACCESS_UNORDERED_ACCESS = 0x10,
  D3D12DDI_BARRIER_ACCESS_DEPTH_STENCIL_WRITE = 0x20,
  D3D12DDI_BARRIER_ACCESS_DEPTH_STENCIL_READ = 0x40,
  D3D12DDI_BARRIER_ACCESS_SHADER_RESOURCE = 0x80,
  D3D12DDI_BARRIER_ACCESS_STREAM_OUTPUT = 0x100,
  D3D12DDI_BARRIER_ACCESS_INDIRECT_ARGUMENT = 0x200,
  D3D12DDI_BARRIER_ACCESS_PREDICATION = 0x200,
  D3D12DDI_BARRIER_ACCESS_COPY_DEST = 0x400,
  D3D12DDI_BARRIER_ACCESS_COPY_SOURCE = 0x800,
  D3D12DDI_BARRIER_ACCESS_RESOLVE_DEST = 0x1000,
  D3D12DDI_BARRIER_ACCESS_RESOLVE_SOURCE = 0x2000,
  D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ = 0x4000,
  D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE = 0x8000,
  D3D12DDI_BARRIER_ACCESS_SHADING_RATE_SOURCE = 0x10000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_READ = 0x20000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_WRITE = 0x40000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_READ = 0x80000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_WRITE = 0x100000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_READ = 0x200000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_WRITE = 0x400000,
  D3D12DDI_BARRIER_ACCESS_NO_ACCESS = 0x80000000
} ;

Konstanten

 
D3D12DDI_BARRIER_ACCESS_COMMON
Wert: 0x0
Der standardmäßige anfängliche Zugriff für alle Ressourcen in einem bestimmten ExecuteCommandLists-Bereich. Unterstützt jede Art von Zugriff, die mit den aktuellen Layout- und Ressourceneigenschaften kompatibel ist, einschließlich nicht mehr als einem Schreibzugriff. Für Puffer und Texturen mit D3D12DDI_BARRIER_LAYOUT_COMMON unterstützt D3D12DDI_BARRIER_ACCESS_COMMON gleichzeitige Lese- und Schreibzugriffe.

Wenn sie als AccessAfter verwendet wird, kann D3D12DDI_BARRIER_ACCESS_COMMON verwendet werden, um eine Ressource wieder an die allgemeine Barrierefreiheit zurückzugeben. Beachten Sie, dass dadurch möglicherweise unnötige Cacheleerungen erzwungen werden, wenn sie falsch verwendet werden. AccessAfter sollte nach Möglichkeit auf explizite Zugriffsbits beschränkt sein.

Vermeiden Sie die Verwendung von D3D12DDI_BARRIER_ACCESS_COMMON als AccessBefore-Barrierwert . Alle Gefahren des Lesens nach dem Schreiben oder Schreiben nach dem Schreiben werden am besten mit expliziten AccessBefore-Bits behandelt.
D3D12DDI_BARRIER_ACCESS_VERTEX_BUFFER
Wert: 0x1
Auf eine Pufferressource kann in der aktuellen Ausführungswarteschlange als Vertexpuffer zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_CONSTANT_BUFFER
Wert: 0x2
Auf eine Pufferressource kann in der aktuellen Ausführungswarteschlange als konstanter Puffer zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_INDEX_BUFFER
Wert: 0x4
Auf eine Pufferressource kann in der aktuellen Ausführungswarteschlange als Indexpuffer zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_RENDER_TARGET
Wert: 0x8
Auf eine Ressource kann als Renderziel zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_UNORDERED_ACCESS
Wert: 0x10
Auf eine Ressource kann als ungeordnete Zugriffsressource zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_DEPTH_STENCIL_WRITE
Wert: 0x20
Auf eine Ressource kann als schreibbare Tiefen-/Schablonenressource zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_DEPTH_STENCIL_READ
Wert: 0x40
Auf eine Ressource kann als schreibgeschützte Tiefen-/Schablonenressource zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_SHADER_RESOURCE
Wert: 0x80
Auf eine Ressource kann als Shaderressource zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_STREAM_OUTPUT
Wert: 0x100
Auf einen Puffer kann als Streamausgabeziel zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_INDIRECT_ARGUMENT
Wert: 0x200
Auf einen Puffer kann als indirekter Argumentpuffer zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_PREDICATION
Wert: 0x200
Auf einen Puffer kann als Prädicationpuffer zugegriffen werden. Alias mit D3D12DDI_BARRIER_ACCESS_INDIRECT_ARGUMENT.
D3D12DDI_BARRIER_ACCESS_COPY_DEST
Wert: 0x400
Auf eine Ressource kann als Kopierziel zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_COPY_SOURCE
Wert: 0x800
Auf eine Ressource kann als Kopierquelle zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_RESOLVE_DEST
Wert: 0x1000
Auf eine Ressource kann als Lösungsziel zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_RESOLVE_SOURCE
Wert: 0x2000
Auf eine Ressource kann als Lösungsquelle zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ
Wert: 0x4000
Auf eine Ressource kann als Raytracingbeschleunigungsstruktur gelesen werden. Die Ressource muss mit dem Anfangszustand D3D12DDI_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE erstellt worden sein.
D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE
Wert: 0x8000
Auf eine Ressource kann als Raytracingbeschleunigungsstruktur für Schreibvorgänge zugegriffen werden. Die Ressource muss mit dem Anfangszustand D3D12DDI_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE erstellt worden sein.
D3D12DDI_BARRIER_ACCESS_SHADING_RATE_SOURCE
Wert: 0x10000
Auf eine Ressource kann als Schattierungsratesquelle zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_READ
Wert: 0x20000
Auf eine Ressource kann für schreibgeschützten Zugriff in einer Videodecodierungswarteschlange zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_WRITE
Wert: 0x40000
Auf eine Ressource kann für den Schreibzugriff in einer Video-Decodierungswarteschlange zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_READ
Wert: 0x80000
Auf eine Ressource kann für schreibgeschützten Zugriff in einer Videoprozesswarteschlange zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_WRITE
Wert: 0x100000
Auf eine Ressource kann für Schreibzugriff in einer Videoprozesswarteschlange zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_READ
Wert: 0x200000
Auf eine Ressource kann für den schreibgeschützten Zugriff in einer Videocodierungswarteschlange zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_WRITE
Wert: 0x400000
Auf eine Ressource kann für den Schreibzugriff in einer Videocodierungswarteschlange zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_NO_ACCESS
Wert: 0x80000000
Auf eine Ressource kann nicht zu Lese- oder Schreibvorgängen zugegriffen werden. Nachdem ein Unterressourcenzugriff auf D3D12DDI_BARRIER_ACCESS_NO_ACCESS umgestellt wurde, muss er durch eine Barriere reaktiviert werden, wobei AccessBefore auf D3D12DDI_BARRIER_ACCESS_NO_ACCESS festgelegt ist, bevor er im gleichen ExecuteCommandLists-Bereich verwendet wird.

D3D12DDI_BARRIER_ACCESS_NO_ACCESS kann nur in Verbindung mit D3D12DDI_BARRIER_SYNC_NONE oder D3D12DDI_BARRIER_SYNC_SPLIT verwendet werden.

D3D12DDI_BARRIER_ACCESS_NO_ACCESS können nicht mit anderen Zugriffsbits festgelegt werden. D3D12DDI_BARRIER_ACCESS_NO_ACCESS gibt an, dass auf eine Ressource erst nach einer nachfolgenden Barriere oder dem nächsten ECL-Bereich zugegriffen wird.

Dieser Wert ist nützlich beim Aliasing von Barrieren, wenn eine Unterressource nicht so lange benötigt wird, dass es sinnvoll ist, die Unterressource aus einem beliebigen Lesecache zu löschen.

Es ist auch nützlich, um einen Layoutübergang als letzte Aktion für eine Ressource vor dem Ende eines ExecuteCommandLists-Bereichs zu initiieren. Wenn SyncAfterD3D12DDI_BARRIER_SYNC_NONE ist, muss AccessAfterD3D12DDI_BARRIER_ACCESS_NO_ACCESS sein.

Anforderungen

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

Weitere Informationen

D3D12DDI_BARRIER_SYNC

D3D12DDI_BUFFER_BARRIER_0088

D3D12DDI_GLOBAL_BARRIER_0088

D3D12DDI_RANGED_BARRIER_0088

D3D12DDI_TEXTURE_BARRIER_0088