次の方法で共有


D3D12_VIEW_INSTANCING_TIER列挙 (d3d12.h)

ビューインスタンス化がサポートされているレベルを示します。

構文

typedef enum D3D12_VIEW_INSTANCING_TIER {
  D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED = 0,
  D3D12_VIEW_INSTANCING_TIER_1 = 1,
  D3D12_VIEW_INSTANCING_TIER_2 = 2,
  D3D12_VIEW_INSTANCING_TIER_3 = 3
} ;

定数

 
D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED
値: 0
ビューインスタンス化はサポートされていません。
D3D12_VIEW_INSTANCING_TIER_1
値: 1
ビューインスタンス化は、描画呼び出しレベルのループでのみサポートされています。
D3D12_VIEW_INSTANCING_TIER_2
値: 2
ビューインスタンス化は、最悪の場合は描画呼び出しレベルのループによってサポートされますが、GPU はアーキテクチャに依存する特定の状況でより効率的にビューインスタンス化を実行できます。
D3D12_VIEW_INSTANCING_TIER_3
値: 3
ビューインスタンス化はサポートされており、インスタンス化は、SV_ViewIDを参照する最初のシェーダー ステージから始まり、シェーダー ステージ参照がSV_ViewIDされていない場合はラスタライズで開始されます。 つまり、SV_ViewIDに依存していない場合、ビュー インスタンス間で冗長な作業が排除されます。 ラスター化の前に、SV_ViewIDに直接依存しない作業は、すべてのビューで共有されます。SV_ViewIDに依存する作業のみがビューごとに繰り返されます。

メモ ハル シェーダーがSV_ViewIDに依存するテセレーション係数を生成する場合は、テセレーションと後続のすべての作業をビューごとに繰り返す必要があります。 同様に、ジオメトリ シェーダーによって生成されるジオメトリの量がSV_ViewIDに依存する場合は、ラスタライズに進む前に、ジオメトリ シェーダーをビューごとに繰り返す必要があります。

 

ビュー インスタンス マスクは、ループ全体の繰り返し (ビューごと) ではなく、SV_ViewIDに直接依存する作業が実行されるかどうかにのみ影響します。 ビュー インスタンス マスクが 0 以外の場合、SV_ViewIDに依存する一部の作業はマスクオフ ピクセルで引き続き実行される可能性がありますが、外部から見える効果はありません。たとえば、UAV 書き込みは実行されず、クリッピング/ラスタライズは呼び出されません。 ビュー インスタンス マスクが 0 の場合、SV_ViewIDに依存しない作業も含め、作業は実行されません。

要件

要件
Header d3d12.h

こちらもご覧ください

コア列挙