次の方法で共有


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 値。

注釈

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

Synchronization

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

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

レイアウトの切り替え

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

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

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

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

要件

要件
サポートされている最小のクライアント Windows 11 (WDDM 3.0)
Header 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