構文
typedef enum D3D12_STATE_OBJECT_FLAGS
{
D3D12_STATE_OBJECT_FLAG_NONE = 0,
D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS = 1,
D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS = 2
} D3D12_STATE_OBJECT_FLAGS
定数
| 定数 | 説明 |
|---|---|
| D3D12_STATE_OBJECT_FLAG_NONE | ステート オブジェクトに制約なし。 |
| D3D12_STATE_OBJECT_FLAG_ALLOW_LOCAL_DEPENDENCIES_ON_EXTERNAL_DEFINITIONS | このフラグはコレクション型のステート オブジェクトにのみ適用されます。それ以外の場合、このフラグは無視されます。このコレクションからのエクスポートには、コレクションを含むステート オブジェクト (レイ トレーシング パイプライン ステート オブジェクト (RTPSO) など) に含まれる時点で解決 (定義) される必要のある、未解決の参照 (依存関係) を持つことが許可されます。これには、外部で定義されたサブオブジェクト関連付けに依存して、外部サブオブジェクト (例: ルート署名) をローカル エクスポートに関連付けることが含まれます。このフラグがない場合、コレクション内のすべてのエクスポートは、必要なサブオブジェクトの関連付けをローカルで定義することを含めて、依存関係が完全にローカルで解決されている必要があります。高度な実装/ドライバーは、コレクション内のコードをコンパイルするのに十分な情報を持っており、未コンパイル コードを保持する必要はありません (D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS フラグが設定されていない限り)。そのため、コレクションが含んでいるステート オブジェクト (例: RTPSO) で使用されるときに、ドライバーが行う作業は最小限で済み、理想的には「安価な」リンクのみです。 |
| D3D12_STATE_OBJECT_FLAG_ALLOW_EXTERNAL_DEPENDENCIES_ON_LOCAL_DEFINITIONS | このフラグはコレクション型のステート オブジェクトにのみ適用されます。それ以外の場合、このフラグは無視されます。このコレクションが他のステート オブジェクト (例: RTPSO) に含まれる場合、含んでいるステート オブジェクトの残りの部分のシェーダー/関数は、このコレクションのエクスポートに依存する (例: 呼び出す) ことが許可されます。このフラグがない場合 (既定)、このコレクションからのエクスポートは、含んでいるステート オブジェクト (例: RTPSO) の他の部分から直接参照することはできません。これにより、ドライバーは、すべてのコードを一緒にコンパイルする可能性のある外部関数から呼び出される可能性を考慮して未コンパイル コードを保持する必要がないため、コレクションのメモリ フットプリントをわずかに削減できます。ただし、このコレクション内のコードに対して必要なすべてのサブオブジェクト関連付けがローカルで定義されていない場合、ドライバーはまだシェーダー コードをコンパイルできず、未コンパイル コードを保持しなければならない場合があります。外部で定義されたサブオブジェクト関連付けが、外部サブオブジェクトをローカル エクスポートに関連付ける場合、これはローカル定義に対する外部依存とはカウントされないため、このフラグの有無は関連付けが許可されるかどうかに影響しません。一方、現在のコレクションが、ローカルで定義されたサブオブジェクトを外部エクスポート (例: シェーダー) に関連付けるサブオブジェクト関連付けを定義する場合、それはローカル定義に対する外部依存としてカウントされ、このフラグを設定する必要があります。このフラグの有無に関わらず、コレクション内のシェーダー エントリ ポイント (ヒット グループやミス シェーダーなど) は、それがエクスポートされる場合、含んでいるステート オブジェクト (例: RTPSO) のエントリ ポイントとして可視となります。RTPSO の場合、エクスポートされたエントリ ポイントはレイ トレーシングのシェーダー テーブルで使用できます。 |
要件
ヘッダー: d3d12_xs.h または d3d12_x.hライブラリ: d3d12_xs.lib または d3d12_x.lib
サポートされるプラットフォーム: XBOX Series 本体および XBOX One ファミリ
