次の方法で共有


D3D12DDI_BARRIER_ACCESS列挙 (d3d12umddi.h)

D3D12DDI_BARRIER_ACCESS 値は、バリアに関するリソース アクセスを指定する次のフィールドのビットごとの OR です。

構文

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
} ;

定数

 
D3D12DDI_BARRIER_ACCESS_COMMON
値: 0x0
指定された ExecuteCommandLists スコープ内のすべてのリソースに対する既定の初期アクセス。 現在のレイアウトとリソースのプロパティと互換性のある任意の種類のアクセスをサポートします(1 つ以上の書き込みアクセスを含む)。 D3D12DDI_BARRIER_LAYOUT_COMMONを使用するバッファーとテクスチャの場合、D3D12DDI_BARRIER_ACCESS_COMMON は同時読み取りと書き込みアクセスをサポートします。

AccessAfter として使用すると、D3D12DDI_BARRIER_ACCESS_COMMON を使用してリソースを一般的なアクセシビリティに戻すことができます。 誤って使用すると、不要なキャッシュフラッシュが強制される可能性があることに注意してください。 可能な場合は、AccessAfter 明示的なアクセス ビットに制限する必要があります。

AccessBefore バリアとしてD3D12DDI_BARRIER_ACCESS_COMMONを使用しないでください。 書き込み後の読み取りまたは書き込み後の危険は、明示的な AccessBefore ビットを使用して処理するのが最適です。
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_INDIRECT_ARGUMENTでエイリアス化されます。
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_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTUREの初期状態を使用して作成されている必要があります。
D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE
値: 0x8000
リソースには、レイ トレーシング アクセラレーション構造として書き込み用にアクセスできます。 リソースは、D3D12DDI_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTUREの初期状態を使用して作成されている必要があります。
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
読み取りまたは書き込みのためにリソースにアクセスできません。 サブリソース アクセスが D3D12DDI_BARRIER_ACCESS_NO_ACCESSに移行されたら、同じ ExecuteCommandLists スコープで使用する前に、AccessBeforeD3D12DDI_BARRIER_ACCESS_NO_ACCESS に設定したバリアによって再アクティブ化する必要があります。

D3D12DDI_BARRIER_ACCESS_NO_ACCESS は、D3D12DDI_BARRIER_SYNC_NONE または D3D12DDI_BARRIER_SYNC_SPLITと組み合わせてのみ使用できます。

D3D12DDI_BARRIER_ACCESS_NO_ACCESS は、他のアクセス ビットでは設定できません。 D3D12DDI_BARRIER_ACCESS_NO_ACCESS は、後続のバリアまたは次の ECL スコープまでリソースがアクセスされないことを示します。

この値は、サブリソースが読み取りキャッシュからサブリソースを消去するのに十分な長い時間必要がない場合に、バリアのエイリアス化に役立ちます。

また、ExecuteCommandLists スコープの終了前に、リソースに対する最後のアクションとしてレイアウトの切り替えを開始する場合にも役立ちます。 SyncAfter D3D12DDI_BARRIER_SYNC_NONE場合は、AccessAfter D3D12DDI_BARRIER_ACCESS_NO_ACCESSする必要があります。

必要条件

要件 価値
サポートされる最小クライアント Windows 11 (WDDM 3.0)
ヘッダー d3d12umddi.h

関連項目

D3D12DDI_BARRIER_SYNC

D3D12DDI_BUFFER_BARRIER_0088

D3D12DDI_GLOBAL_BARRIER_0088

D3D12DDI_RANGED_BARRIER_0088

D3D12DDI_TEXTURE_BARRIER_0088