次の方法で共有


D3D12DDI_TEXTURE_BARRIER_0088構造体 (d3d12umddi.h)

D3D12DDI_TEXTURE_BARRIER_0088 構造体は、テクスチャのアクセス遷移を記述します。

構文

typedef struct D3D12DDI_TEXTURE_BARRIER_0088 {
  D3D12DDI_BARRIER_SYNC                   SyncBefore;
  D3D12DDI_BARRIER_SYNC                   SyncAfter;
  D3D12DDI_BARRIER_ACCESS                 AccessBefore;
  D3D12DDI_BARRIER_ACCESS                 AccessAfter;
  D3D12DDI_BARRIER_LAYOUT                 LayoutBefore;
  D3D12DDI_BARRIER_LAYOUT                 LayoutAfter;
  D3D12DDI_HRESOURCE                      hResource;
  D3D12DDI_BARRIER_SUBRESOURCE_RANGE_0088 Subresources;
  D3D12DDI_TEXTURE_BARRIER_FLAGS_0088     Flags;
} D3D12DDI_TEXTURE_BARRIER_0088;

メンバーズ

SyncBefore

バリアを実行する前に完了する必要がある、上記のすべての GPU 作業の同期スコープを指定する D3D12DDI_BARRIER_SYNC 値。

SyncAfter

バリアの実行が完了するまで待機する必要がある後続のすべての GPU 作業の同期スコープを指定する D3D12DDI_BARRIER_SYNC 値。

AccessBefore

バリアの実行前のテクスチャのアクセス状態を指定する D3D12DDI_BARRIER_ACCESS 値。

AccessAfter

バリアの実行が完了したときのテクスチャのアクセス状態を指定する D3D12DDI_BARRIER_ACCESS 値。

LayoutBefore

バリアの実行前のテクスチャのレイアウトを指定する D3D12DDI_BARRIER_LAYOUT 値。

LayoutAfter

バリアの実行が完了したときのテクスチャのレイアウトを指定する D3D12DDI_BARRIER_LAYOUT 値。

hResource

バリアを使用したテクスチャ リソースのハンドル。

Subresources

バリアされているテクスチャ サブリソースの範囲を指定する D3D12DDI_BARRIER_SUBRESOURCE_RANGE_0088 構造体。

Flags

省略可能なフラグを指定する D3D12DDI_TEXTURE_BARRIER_FLAGS_0088 値。

備考

一般的な情報については、「強化されたバリアの」を参照してください。

同期

グラフィックス プロセッサは、できるだけ多くの作業を並列で実行するように設計されています。 依存データにアクセスする前に、以前の GPU 作業に依存するすべての GPU 作業を同期する必要があります。 SyncBeforeSyncAfter 値は、同期する作業を識別する論理ビットフィールド マスクです。

バリアは、上記のすべてのコマンド SyncBefore スコープが完了するのを待ってから、バリアを実行する必要があります。 同様に、バリアは、バリアが完了するまで、それ以降のすべての SyncAfter スコープをブロックする必要があります。

レイアウトの切り替え

テクスチャ サブリソースでは、さまざまなアクセス方法に異なるレイアウトを使用できます。 たとえば、テクスチャはレンダー ターゲットまたは深度ステンシルとして使用される場合に圧縮されることが多く、多くの場合、シェーダーの読み取りまたはコピー コマンドでは圧縮されません。 テクスチャ バリアでは、LayoutBefore 使用し、LayoutAfter してレイアウトの切り替えを記述します。

レイアウトの切り替えはテクスチャにのみ必要であるため、このデータ構造でのみ表現されます。

LayoutBeforeLayoutAfter は、バリアを実行するキューの種類と互換性がある必要があります。 たとえば、コンピューティング キューは、サブリソースを D3D12_BARRIER_LAYOUT_RENDER_TARGETに切り替えることはできません。

バリアの順序を明確に定義するために、一連のバリアを完了した後のサブリソースのレイアウトは、シーケンス内の最終的な LayoutAfter です。

必要条件

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

関連項目

D3D12DDI_BARRIER_ACCESS

D3D12DDI_BARRIER_LAYOUT

D3D12DDI_BARRIER_SUBRESOURCE_RANGE_0088

D3D12DDI_BARRIER_SYNC

D3D12DDI_TEXTURE_BARRIER_FLAGS_0088

D3D12DDIARG_BARRIER_0088

PFND3D12DDI_BARRIER_0088