Freigeben über


D3D12DDI_BARRIER_ACCESS-Aufzählung (d3d12umddi.h)

Ein D3D12DDI_BARRIER_ACCESS Wert ist ein bitweiser ODER 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 alle Zugriffstypen, die mit den aktuellen Layout- und Ressourceneigenschaften kompatibel sind, einschließlich nicht mehr als eines Schreibzugriffs. Für Puffer und Texturen mit D3D12DDI_BARRIER_LAYOUT_COMMONunterstützt D3D12DDI_BARRIER_ACCESS_COMMON gleichzeitige Lese- und Schreibzugriffe.

Bei Verwendung als AccessAfterkönnen D3D12DDI_BARRIER_ACCESS_COMMON verwendet werden, um eine Ressource wieder auf allgemeine Barrierefreiheit zurückzugeben. Beachten Sie, dass dies bei falscher Verwendung unnötige Cachelöschungen erzwingen kann. Wenn möglich, sollte AccessAfter- auf explizite Zugriffsbits beschränkt sein.

Vermeiden Sie die Verwendung von D3D12DDI_BARRIER_ACCESS_COMMON als Barriere AccessBefore Werts. Alle Lese-nach-Schreib- oder Schreib-nach-Schreib-Gefahren werden am besten mit expliziten AccessBefore Bits behandelt.
D3D12DDI_BARRIER_ACCESS_VERTEX_BUFFER
Wert: 0x1
Auf eine Pufferressource kann als Vertexpuffer in der aktuellen Ausführungswarteschlange zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_CONSTANT_BUFFER
Wert: 0x2
Auf eine Pufferressource kann als Konstantenpuffer in der aktuellen Ausführungswarteschlange zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_INDEX_BUFFER
Wert: 0x4
Auf eine Pufferressource kann als Indexpuffer in der aktuellen Ausführungswarteschlange 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 Datenstromausgabeziel 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 Vorabpuffer 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 Auflösungsziel zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_RESOLVE_SOURCE
Wert: 0x2000
Auf eine Ressource kann als Auflösungsquelle zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ
Wert: 0x4000
Eine Ressource ist für das Lesen als Ray Tracing-Beschleunigungsstruktur zugänglich. Die Ressource muss mit einem Anfangszustand von D3D12DDI_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTUREerstellt worden sein.
D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE
Wert: 0x8000
Eine Ressource ist für das Schreiben als Ray Tracing-Beschleunigungsstruktur zugänglich. Die Ressource muss mit einem Anfangszustand von D3D12DDI_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTUREerstellt 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 in einer Videodecodierungswarteschlange schreibgeschützt zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_WRITE
Wert: 0x40000
Auf eine Ressource kann über Schreibzugriff in einer Videodecodierungswarteschlange zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_READ
Wert: 0x80000
Eine Ressource ist für den schreibgeschützten Zugriff in einer Videoprozesswarteschlange zugänglich.
D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_WRITE
Wert: 0x100000
Auf eine Ressource kann über Schreibzugriff in einer Videoprozesswarteschlange zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_READ
Wert: 0x200000
Eine Ressource ist für den schreibgeschützten Zugriff in einer Videocodierungswarteschlange zugänglich.
D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_WRITE
Wert: 0x400000
Auf eine Ressource kann über Schreibzugriff in einer Videocodierungswarteschlange zugegriffen werden.
D3D12DDI_BARRIER_ACCESS_NO_ACCESS
Wert: 0x80000000
Auf eine Ressource kann nicht für Lese- oder Schreibzugriff zugegriffen werden. Nachdem ein Unterressourcenzugriff auf D3D12DDI_BARRIER_ACCESS_NO_ACCESSumgestellt wurde, muss er von einer 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_SPLITverwendet werden.

D3D12DDI_BARRIER_ACCESS_NO_ACCESS kann nicht mit anderen Zugriffsbits festgelegt werden. D3D12DDI_BARRIER_ACCESS_NO_ACCESS gibt an, dass auf eine Ressource nicht zugegriffen werden soll, bis eine nachfolgende Barriere oder der nächste ECL-Bereich erreicht wird.

Dieser Wert ist nützlich bei Aliasing-Barrieren, wenn eine Unterressource für eine ausreichend lange Zeit nicht benötigt wird, sodass es sinnvoll ist, die Unterressource aus einem beliebigen Lesecache zu löschen.

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

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 11 (WDDM 3.0)
Header- d3d12umddi.h

Siehe auch

D3D12DDI_BARRIER_SYNC

D3D12DDI_BUFFER_BARRIER_0088

D3D12DDI_GLOBAL_BARRIER_0088

D3D12DDI_RANGED_BARRIER_0088

D3D12DDI_TEXTURE_BARRIER_0088