Skip to main content
後続の描画で有効化されるビュー インスタンスを制御するマスクを設定します。

構文

パラメーター

Mask [in]
型: UINT
どのビューが有効か無効かを指定するマスク。最下位ビットから数えて i 番目のビットが設定されていれば、ビュー インスタンス i が有効になります。

戻り値

型: void なし。

解説

ビュー インスタンス マスクは、作成時に D3D12_VIEW_INSTANCING_FLAG_ENABLE_VIEW_INSTANCE_MASKING フラグを指定してビュー インスタンス マスキングを宣言した PSO にのみ影響します。ビュー インスタンシングをサポートしないアダプターでは、ビュー インスタンス マスキングを宣言する PSO の作成は失敗します。 ビュー インスタンス マスクの既定値は 0 で、すべてのビューが無効になります。これにより、ビュー インスタンス マスキングを宣言するアプリケーションは、有効にするビューを明示的に選択する必要があります。そうしないと何もレンダリングされません。ビュー インスタンス マスクが既定ですべてのビューを有効にすると、アプリケーションが使用されないビューを無効にすることを忘れる可能性があり、無駄な処理によりパフォーマンスが低下する結果となります。 バンドルは呼び出し元からビュー インスタンス マスクを継承せず、代わりに 0 が既定値となります。これは、実装がドローの記録方法に影響を与える場合、マスク設定はバンドルの記録時に判明している必要があるためです。ただし、バンドルによって設定されたビュー インスタンス マスクは、バンドル完了後も呼び出し元に持続します。これらの継承セマンティクスは PSO のセマンティクスに似ています。 マスクオフされたビュー インスタンスに対しては、SV_ViewID に依存するシェーダー コード パスはどのシェーダー ステージでも実行されず、クリッピング、ビューポート処理、またはラスタライズも実行されません。レンダリング中にマスクを検査する実装では、ビュー インスタンス マスキングをまったく宣言しない PSO と比較して小さなパフォーマンス ペナルティが発生する可能性がありますが、通常は、マスクオフされたビューに関連する作業をスキップすることで得られるパフォーマンス上の節約によってペナルティは相殺されます。スキップされる作業の頻度と量に応じて、パフォーマンス上の利益は大きくなる可能性があります。

要件

ヘッダー: d3d12_xs.h または d3d12_x.h
ライブラリ: d3d12_xs.lib または d3d12_x.lib
サポートされるプラットフォーム: XBOX Series 本体および XBOX One ファミリ

関連項目

ID3D12GraphicsCommandList1
最終更新日 2026年8月24日