D3D11_FEATURE_DATA_D3D11_OPTIONS構造体 (d3d11.h)
現在のグラフィックス ドライバーの Direct3D 11.1 機能オプションについて説明します。
注意
この構造は、Windows 8 以降のオペレーティング システムで使用できる Direct3D 11.1 ランタイムでサポートされています。
構文
typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS {
BOOL OutputMergerLogicOp;
BOOL UAVOnlyRenderingForcedSampleCount;
BOOL DiscardAPIsSeenByDriver;
BOOL FlagsForUpdateAndCopySeenByDriver;
BOOL ClearView;
BOOL CopyWithOverlap;
BOOL ConstantBufferPartialUpdate;
BOOL ConstantBufferOffsetting;
BOOL MapNoOverwriteOnDynamicConstantBuffer;
BOOL MapNoOverwriteOnDynamicBufferSRV;
BOOL MultisampleRTVWithForcedSampleCountOne;
BOOL SAD4ShaderInstructions;
BOOL ExtendedDoublesShaderInstructions;
BOOL ExtendedResourceSharing;
} D3D11_FEATURE_DATA_D3D11_OPTIONS;
メンバー
OutputMergerLogicOp
ロジック操作をブレンド状態で使用できるかどうかを指定します。 ロジック操作がブレンド状態で使用可能な場合はランタイムによってこのメンバーが TRUE に設定され、それ以外の場合は FALSE に 設定されます。 このメンバーは、機能レベル 9.1、9.2、9.3 の場合は FALSE です。 このメンバーは、機能レベル 10、10.1、および 11 では省略可能です。 このメンバーは、機能レベル 11.1 の 場合は TRUE です。
UAVOnlyRenderingForcedSampleCount
ドライバーがレンダー ターゲット ビュー (RTV) または深度ステンシル ビュー (DSV) を使用せず、順序なしアクセス ビュー (UAV) のみをバインドしてレンダリングできるかどうかを指定します。 ランタイムは、ドライバーが RTV または DSV なしでレンダリングでき、UAV のみがバインドされ、それ以外の場合は FALSE の場合、このメンバーを TRUEに 設定します。 TRUE の場合、D3D11_RASTERIZER_DESC1 の ForcedSampleCount メンバーを 1、4、または 8 に設定できます。RTV または DSV をレンダリングするときに、UAV のみがバインドされます。 機能レベル 11.1 の場合、このメンバーは常に TRUE であり、1、4、または 8 に加えて ForcedSampleCount を 16 に設定することもできます。 ForcedSampleCount の既定値は 0 です。これは、値が 1 に設定されている場合と同じであることを意味します。 UAV のみのレンダリングでは、このメンバーの設定方法とは無関係に、 ForcedSampleCount を常に 0 または 1 に設定できます。
DiscardAPIsSeenByDriver
ドライバーが ID3D11DeviceContext1::D iscardView メソッドと ID3D11DeviceContext1::D iscardResource メソッドをサポートするかどうかを指定します。 ドライバーがこれらのメソッドをサポートしている場合、ランタイムはこのメンバーを TRUE に設定し、それ以外の場合は FALSE を 設定します。 このメンバーの設定方法は、ドライバーが実際にこれらのメソッドを使用しているかどうかを示すものではありません。つまり、ハードウェアに役立たない場合、ドライバーはこれらのメソッドを無視する可能性があります。 FALSE の場合、ドライバーはドライバーをサポートしていないため、ランタイムはこれらのメソッドをドライバーに公開しません。 開発中にこのメンバーを監視して、これらのメソッドが役に立つ可能性があるハードウェア上のレガシ ドライバーを除外できます。 このメンバーが TRUE か FALSE かに基づいて個別のコード パスを記述する必要はありません。必要に応じて、これらのメソッドを呼び出すことができます。
FlagsForUpdateAndCopySeenByDriver
ドライバーが、ID3D11DeviceContext1::CopySubresourceRegion1 メソッドと ID3D11DeviceContext1::UpdateSubresource1 メソッドによって公開されるコピーと更新の新しいセマンティクスをサポートするかどうかを指定します。 ドライバーがコピーと更新の新しいセマンティクスをサポートしている場合、ランタイムはこのメンバーを TRUE に 設定します。 ランタイムは、レガシ ドライバーの場合にのみ、このメンバーを FALSE に設定します。 ランタイムは、 DiscardAPIsSeenByDriver メンバーと同様に、このメンバーを処理します。
ClearView
ドライバーが ID3D11DeviceContext1::ClearView メソッドをサポートするかどうかを指定します。 ドライバーがこのメソッドをサポートしている場合はランタイムによってこのメンバーが TRUE に設定され、それ以外の場合は FALSE に 設定されます。 FALSE の場合、ドライバーではサポートされていないため、ランタイムはこのメソッドをドライバーに公開しません。
CopyWithOverlap
ID3D11DeviceContext1::CopySubresourceRegion1 を呼び出し、コピー元とコピー先の四角形を重ねて呼び出すことができるかどうかを指定します。 コピー元とコピー先の四角形が重複する CopySubresourceRegion1 を呼び出し、それ以外の場合は FALSE を呼び出すことができる場合、ランタイムはこのメンバーを TRUEに設定します。 FALSE の場合、ドライバーではサポートされていないため、ランタイムはこのメソッドをドライバーに公開しません。
ConstantBufferPartialUpdate
ドライバーが定数バッファーの部分的な更新をサポートするかどうかを指定します。 ドライバーが定数バッファーの部分的な更新をサポートしている場合、ランタイムはこのメンバーを TRUE に設定し、それ以外の場合は FALSE を 設定します。 FALSE の場合、ドライバーではサポートされていないため、ランタイムはこの操作をドライバーに公開しません。
ConstantBufferOffsetting
シェーダーの定数バッファーでオフセットを設定するための新しいセマンティクスをドライバーがサポートするかどうかを指定します。 ID3D11DeviceContext1::VSSetConstantBuffers1 メソッドなどの新しいメソッドを呼び出すときに、ドライバーでオフセットを指定できる場合、ランタイムはこのメンバーを TRUE に設定します。それ以外の場合は FALSE を指定します。 FALSE の場合、ドライバーではサポートされていないため、ランタイムはこの操作をドライバーに公開しません。
MapNoOverwriteOnDynamicConstantBuffer
動的定数バッファーで ID3D11DeviceContext::Map を D3D11_MAP_WRITE_NO_OVERWRITE で呼び出すことができるかどうかを指定します (つまり、ドライバーがこの操作をサポートしているかどうか)。 ドライバーがこの操作をサポートしている場合はランタイムによってこのメンバーが TRUE に設定され、それ以外の場合は FALSE に 設定されます。 FALSE の場合、ドライバーは操作をサポートしていないため、ランタイムはこのメソッドに失敗します。
MapNoOverwriteOnDynamicBufferSRV
動的バッファー SRV で ID3D11DeviceContext::Map を D3D11_MAP_WRITE_NO_OVERWRITE で呼び出すことができるかどうかを指定します (つまり、ドライバーがこの操作をサポートしているかどうか)。 ドライバーがこの操作をサポートしている場合はランタイムによってこのメンバーが TRUE に設定され、それ以外の場合は FALSE に 設定されます。 FALSE の場合、ドライバーは操作をサポートしていないため、ランタイムはこのメソッドに失敗します。
MultisampleRTVWithForcedSampleCountOne
RTV をバインドしてレンダリングするときに、ドライバーがマルチサンプル レンダリングをサポートするかどうかを指定します。 TRUE の場合、マルチサンプル RTV をバインドして、D3D11_RASTERIZER_DESC1の ForcedSampleCount メンバーを 1 に設定できます。 ドライバーは、 機能レベル 10 以降でこのオプションをサポートできます。 FALSE の場合、ドライバーがレガシであるか、機能レベルが低すぎるため、ラスタライザー状態の作成は失敗します。
SAD4ShaderInstructions
ハードウェアとドライバーがシェーダーで msad4 組み込み関数をサポートするかどうかを指定します。 ハードウェアとドライバーがシェーダーの msad4 組み込み関数の呼び出しをサポートしている場合、ランタイムはこのメンバーを TRUE に設定します。 FALSE の場合、ドライバーはレガシであるか、ハードウェアは オプションをサポートしていません。ランタイムは、msad4 を使用するシェーダーのシェーダーの作成に失敗します。
ExtendedDoublesShaderInstructions
ハードウェアとドライバーが fma 組み込み関数とその他の拡張 doubles 命令 (DDIV および DRCP) をシェーダーでサポートするかどうかを指定します。 fma 組み込み関数は、拡張 doubles DFMA 命令を出力します。 ハードウェアとドライバーがシェーダー (シェーダー モデル 5 以降) で拡張 doubles 命令をサポートしている場合、ランタイムはこのメンバーを TRUE に設定します。 このオプションのサポートは、基本的な倍精度シェーダー命令のサポートも意味します。 D3D11_FEATURE_DOUBLES値を使用して、倍精度シェーダーのサポートを照会できます。 FALSE の場合、ハードウェアとドライバーは オプションをサポートしていません。ランタイムは、拡張 doubles 命令を使用するシェーダーのシェーダーの作成に失敗します。
ExtendedResourceSharing
ハードウェアとドライバーが 共有 Texture2D リソースの種類と形式を拡張サポートしているかどうかを指定します。 ハードウェアとドライバーが拡張 Texture2D リソース共有をサポートしている場合、ランタイムはこのメンバーを TRUE に 設定します。
解説
Microsoft Direct3D デバイスで機能レベル 11.1 (D3D_FEATURE_LEVEL_11_1) がサポートされている場合、ID3D11Device::CheckFeatureSupport をD3D11_FEATURE_D3D11_OPTIONSで呼び出すと、CheckFeatureSupport は、SAD4ShaderInstructions と ExtendedDoublesShaderInstructions を除くすべてのメンバーが TRUE に設定されたD3D11_FEATURE_DATA_D3D11_OPTIONSへのポインターを返します。メンバー。必要に応じてハードウェアとドライバーでサポートされるため、TRUE または FALSE にすることができます。
機能レベル 11.1 には、次の追加機能が用意されています。
- 8 ではなく 64 個の UAV バインド スロットを持つすべてのシェーダー ステージの UAV。
- ターゲットに依存しないラスター化。これにより、D3D11_RASTERIZER_DESC1の ForcedSampleCount メンバーを 1、4、8、または 16 に設定し、1 つのサンプルで RTV にレンダリングできます。
- D3D11_RASTERIZER_DESC1の ForcedSampleCount メンバーを使用した UAV のみのレンダリングは、最大 16 に設定されます (機能レベル 11 の場合は最大 8)。
- DiscardAPIsSeenByDriver と FlagsForUpdateAndCopySeenByDriver
- ClearView、 CopyWithOverlap、 ConstantBufferPartialUpdate、 ConstantBufferOffsetting、 MapNoOverwriteOnDynamicConstantBuffer
- MapNoOverwriteOnDynamicBufferSRV と MultisampleRTVWithForcedSampleCountOne
要件
サポートされている最小のクライアント | Windows 8 および Windows 7 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2012 および Windows Server 2008 R2 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ] |
Header | d3d11.h |