D3D12DDI_BARRIER_LAYOUT列挙 (d3d12umddi.h)

重要

一部の情報はプレリリース製品に関連しており、商用リリース前に大幅に変更される可能性があります。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。

D3D12DDI_BARRIER_LAYOUT値は、テクスチャ バリアに関して D3D12 サブリソースで使用できるレイアウトを表します。 レイアウトはテクスチャ リソースにのみ適用されます。

構文

typedef enum D3D12DDI_BARRIER_LAYOUT {
  D3D12DDI_BARRIER_LAYOUT_UNDEFINED = 0xffffffff,
  D3D12DDI_BARRIER_LAYOUT_COMMON = 0,
  D3D12DDI_BARRIER_LAYOUT_PRESENT = 0,
  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_COPY_SOURCE = 0x80000000,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_DEST,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_SHADER_RESOURCE,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_PIXEL_SHADER_RESOURCE
} ;

定数

 
D3D12DDI_BARRIER_LAYOUT_UNDEFINED
値: 0xffffffff
前のレイアウトが無関係または未定義のサブリソース レイアウトの変更をサポートします。 通常、これはフル サブリソースまたはフル リソースの Clear、Discard、および Copy コマンドに使用されます。

LayoutBefore と LayoutAfter の両方が D3D12_BARRIER_LAYOUT_UNDEFINED に設定されているレイアウト遷移は、メモリ アクセス専用バリアを示します。 多くの読み取り/書き込み操作 では、D3D12_BARRIER_LAYOUT_COMMONがサポートされています。 特に、[コピー] コマンドは 、D3D12_BARRIER_LAYOUT_COMMON または D3D12_BARRIER_LAYOUT_COPYを使用してテクスチャに書き込むことができます。 メモリ アクセス専用バリアを使用すると、テクスチャ レイアウトを変更せずに、コピー書き込みをテクスチャにフラッシュできます。
D3D12DDI_BARRIER_LAYOUT_COMMON
値: 0
これは、 D3D12_RESOURCE_STATE_COMMONで使用されるレイアウトです。 このレイアウトのサブリソースは、レイアウトの変更を必要とせずに、任意のキューの種類で読み取り可能です。 また、任意のキューの種類のコピー先として書き込み可能です。

スワップ チェーンの表示では、バック バッファーで D3D12_BARRIER_LAYOUT_COMMONが使用されている必要があります。
D3D12DDI_BARRIER_LAYOUT_PRESENT
値: 0
D3D12_BARRIER_LAYOUT_COMMONのエイリアス。
D3D12DDI_BARRIER_LAYOUT_GENERIC_READ
読み取り専用アクセスのサポートを提供します (たとえば、SHADER_RESOURCE、COPY_SOURCE)。 この値は、複数の同時読み取りアクセスを必要とするテクスチャにのみ使用する必要があります。これは、より具体的な読み取りレイアウトほど最適ではない可能性があるためです。
D3D12DDI_BARRIER_LAYOUT_RENDER_TARGET
D3D12_RESOURCE_STATE_RENDER_TARGETで使用されるレイアウトと一致します。
D3D12DDI_BARRIER_LAYOUT_UNORDERED_ACCESS
D3D12_RESOURCE_STATE_UNORDERED_ACCESSで使用されるレイアウト 一致します。
D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE
D3D12_RESOURCE_STATE_DEPTH_WRITEによって使用されるレイアウトと一致します。
D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_READ
D3D12_RESOURCE_STATE_DEPTH_READで使用されるレイアウト 一致します。
D3D12DDI_BARRIER_LAYOUT_SHADER_RESOURCE
D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCEとD3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCEで使用されるレイアウトと一致します
D3D12DDI_BARRIER_LAYOUT_COPY_SOURCE
D3D12_RESOURCE_STATE_COPY_SOURCEで使用されるレイアウト 一致します。
D3D12DDI_BARRIER_LAYOUT_COPY_DEST
D3D12_RESOURCE_STATE_COPY_DESTで使用されるレイアウト 一致します。
D3D12DDI_BARRIER_LAYOUT_RESOLVE_SOURCE
D3D12DDI_RESOURCE_STATE_RESOLVE_SOURCEで使用されるレイアウトと一致します。
D3D12DDI_BARRIER_LAYOUT_RESOLVE_DEST
D3D12DDI_RESOURCE_STATE_RESOLVE_DESTで使用されるレイアウトと一致します。
D3D12DDI_BARRIER_LAYOUT_SHADING_RATE_SOURCE
D3D12DDI_RESOURCE_STATE_0062_SHADING_RATE_SOURCEで使用されるレイアウト 一致します。
D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_READ
D3D12_RESOURCE_STATE_VIDEO_DECODE_READで使用されるレイアウト 一致します。
D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_WRITE
D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITEで使用されるレイアウトと一致します。
D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_READ
D3D12_RESOURCE_STATE_VIDEO_PROCESS_READで使用されるレイアウト 一致します。
D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE
D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITEで使用されるレイアウト 一致します。
D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_READ
D3D12_RESOURCE_STATE_VIDEO_ENCODE_READによって使用されるレイアウトと一致します。
D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE
D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITEで使用されるレイアウトと一致します。
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON
直接キューでのみ一般的な (バリア フリー) の使用をサポートします。 この値は、一般的な D3D12DDI_BARRIER_LAYOUT_COMMONよりも最適です。 直接キューのバリアでのみ使用できます。

これは Present には使用できないことに注意してください。 D3D12_BARRIER_LAYOUT_COMMON ( D3D12_BARRIER_LAYOUT_PRESENT とも呼ばれます) は、引き続きプレゼンテーションに必要なレイアウトです。
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ
直接キューに固有の最適化を除き、 D3D12_BARRIER_LAYOUT_GENERIC_READ と同じです。 直接キューのバリアでのみ使用できます。

さらに、 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ には、直接キューでの読み取り専用深度、網かけレート ソース、および解決ソース アクセスのサポートが含まれています。
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS
ダイレクト キューに固有の最適化を除き、 D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS と同じです。 直接キューのバリアでのみ使用できます。
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE
ダイレクト キューに固有の最適化を除き、 D3D12_BARRIER_LAYOUT_SHADER_RESOURCE と同じです。 直接キューのバリアでのみ使用できます。
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE
直接キューに固有の最適化を除き、 D3D12_BARRIER_LAYOUT_COPY_SOURCE と同じです。 直接キューのバリアでのみ使用できます。
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST
ダイレクト キューに固有の最適化を除き、 D3D12_BARRIER_LAYOUT_COPY_DEST と同じです。 直接キューのバリアでのみ使用できます。 Direct キューの次のアクセス権を持つリソースに対する一部のレイアウト切り替えで、コストと不要な圧縮解除を防ぐことができます。
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON
コンピューティング キューでのみ一般的な (バリア フリー) の使用をサポートします。 より一般的な D3D12_BARRIER_LAYOUT_COMMONよりも最適な場合があります。 コンピューティング キューのバリアでのみ使用できます。
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ
コンピューティング キューに固有の最適化を除き、 D3D12_BARRIER_LAYOUT_GENERIC_READ と同じです。 コンピューティング キューのバリアでのみ使用できます。
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS
コンピューティング キューに固有の最適化を除き、 D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS と同じです。 コンピューティング キューのバリアでのみ使用できます。
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE
コンピューティング キューに固有の最適化を除き、 D3D12_BARRIER_LAYOUT_SHADER_RESOURCE と同じです。 コンピューティング キューのバリアでのみ使用できます。
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE
コンピューティング キューに固有の最適化を除き、 D3D12_BARRIER_LAYOUT_COPY_SOURCE と同じです。 コンピューティング キューのバリアでのみ使用できます。
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST
コンピューティング キューに固有の最適化を除き、 D3D12_BARRIER_LAYOUT_COPY_DEST と同じです。 コンピューティング キューのバリアでのみ使用できます。
D3D12DDI_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON
ビデオ キューでのみ一般的な (バリア フリー) の使用をサポートします。 より一般的な D3D12_BARRIER_LAYOUT_COMMONよりも最適な場合があります。 ビデオ キューのバリアでのみ使用できます。
D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_SOURCE
値: 0x80000000
内部変換されたレガシ リソースの状態をサポートします。 拡張バリア API は、この値にマップされません。
D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_DEST
内部変換されたレガシ リソースの状態をサポートします。 拡張バリア API は、この値にマップされません。
D3D12DDI_BARRIER_LAYOUT_LEGACY_SHADER_RESOURCE
内部変換されたレガシ リソースの状態をサポートします。 拡張バリア API は、この値にマップされません。
D3D12DDI_BARRIER_LAYOUT_LEGACY_PIXEL_SHADER_RESOURCE
内部変換されたレガシ リソースの状態をサポートします。 拡張バリア API は、この値にマップされません。

注釈

バッファー リソースには、アクセスの種類に関係なく、線形レイアウトのみが含まれます。

リソース レイアウトは、レイアウト切り替えを実行するキューの種類と互換性がある必要があります。

要件

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

こちらもご覧ください

D3D12DDI_TEXTURE_BARRIER_0088