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 スコープの終了前に、リソースに対する最後の動作としてレイアウト切り替えを開始する場合にも役立ちます。 SyncAfterD3D12DDI_BARRIER_SYNC_NONEされている場合は、AccessAfterD3D12DDI_BARRIER_ACCESS_NO_ACCESSする必要があります。

要件

要件
サポートされている最小のクライアント Windows 11 (WDDM 3.0)
Header d3d12umddi.h

こちらもご覧ください

D3D12DDI_BARRIER_SYNC

D3D12DDI_BUFFER_BARRIER_0088

D3D12DDI_GLOBAL_BARRIER_0088

D3D12DDI_RANGED_BARRIER_0088

D3D12DDI_TEXTURE_BARRIER_0088