Win32 API 日本語リファレンス
ホームGraphics.Direct3D12 › D3D12_VIEW_INSTANCING_TIER

D3D12_VIEW_INSTANCING_TIER

列挙型
基底型i4

メンバー 4

名前10進16進説明
D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED00x0View instancing はサポートされません。
D3D12_VIEW_INSTANCING_TIER_110x1View instancing は、描画呼び出し (draw call) レベルのループによってのみサポートされます。
D3D12_VIEW_INSTANCING_TIER_220x2View instancing は、最悪の場合でも描画呼び出し (draw call) レベルのループによってサポートされますが、アーキテクチャに依存する特定の状況では、GPU がより効率的に view instancing を実行できます。
D3D12_VIEW_INSTANCING_TIER_330x3

View instancing がサポートされ、インスタンス化は SV_ViewID を参照する最初のシェーダー ステージから開始されます。SV_ViewID を参照するシェーダー ステージが存在しない場合は、ラスタライズから開始されます。これは、SV_ViewID に依存しない処理については、ビュー インスタンス間での冗長な処理が排除されることを意味します。ラスタライズより前では、SV_ViewID に直接依存しない処理はすべてのビューで共有され、SV_ViewID に依存する処理のみがビューごとに繰り返されます。

Note ハル シェーダーが SV_ViewID に依存するテセレーション係数を生成する場合、テセレーションおよびそれ以降のすべての処理はビューごとに繰り返す必要があります。同様に、ジオメトリ シェーダーが生成するジオメトリの量が SV_ViewID に依存する場合、ラスタライズに進む前に、ジオメトリ シェーダーをビューごとに繰り返す必要があります。
ビュー インスタンス マスクは、SV_ViewID に直接依存する処理を実行するかどうかにのみ影響し、ループの反復全体 (ビューごと) には影響しません。ビュー インスタンス マスクが 0 以外の場合、SV_ViewID に依存する一部の処理はマスクされたピクセルに対しても実行されることがありますが、外部から見える影響はありません。たとえば、UAV への書き込みは行われず、クリッピングやラスタライズも呼び出されません。ビュー インスタンス マスクが 0 の場合は、SV_ViewID に依存しない処理も含めて、処理はいっさい行われません。

公式ドキュメント

View instancing がサポートされるティア レベルを示します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

列挙メンバーの定義。HSP タブは #define global(値は16進)。

typedef enum D3D12_VIEW_INSTANCING_TIER : int {
    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;
public enum D3D12_VIEW_INSTANCING_TIER : int
{
    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,
}
Public Enum D3D12_VIEW_INSTANCING_TIER As Integer
    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
End Enum
import enum

class D3D12_VIEW_INSTANCING_TIER(enum.IntEnum):
    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
pub const D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED: i32 = 0;
pub const D3D12_VIEW_INSTANCING_TIER_1: i32 = 1;
pub const D3D12_VIEW_INSTANCING_TIER_2: i32 = 2;
pub const D3D12_VIEW_INSTANCING_TIER_3: i32 = 3;
// D3D12_VIEW_INSTANCING_TIER
const (
	D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED int32 = 0
	D3D12_VIEW_INSTANCING_TIER_1 int32 = 1
	D3D12_VIEW_INSTANCING_TIER_2 int32 = 2
	D3D12_VIEW_INSTANCING_TIER_3 int32 = 3
)
const
  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
pub const D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED: i32 = 0;
pub const D3D12_VIEW_INSTANCING_TIER_1: i32 = 1;
pub const D3D12_VIEW_INSTANCING_TIER_2: i32 = 2;
pub const D3D12_VIEW_INSTANCING_TIER_3: i32 = 3;
const
  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
enum D3D12_VIEW_INSTANCING_TIER : int {
    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,
}
#define global D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED 0x0
#define global D3D12_VIEW_INSTANCING_TIER_1             0x1
#define global D3D12_VIEW_INSTANCING_TIER_2             0x2
#define global D3D12_VIEW_INSTANCING_TIER_3             0x3