例外

Direct3D 11 の一部の機能は、機能レベルによって完全に指定されていません。 このトピックでは、ダウンレベル ハードウェアで Direct3D 11 を使用する場合の例外について説明します。 おそらく、機能レベルが定義された後に機能が追加された (更新されたドライバーが必要) か、異なる GPU が広く異なる実装を実装している可能性があります。 機能レベルの例外は、次のグループに収集できます。

「10Level9 リファレンス」セクションでは、さまざまな ID3D11Device メソッドと ID3D11DeviceContext メソッドがさまざまな 10Level9 機能レベルでどのように動作するかの違いを示します。

拡張形式

拡張形式は、機能レベル 10_0 と 10_1 の Direct3D 10.1 と Direct3D 11 に追加されるピクセル形式です。 拡張形式には、更新されたドライバーが必要です (Direct3D 10_1 以下の場合)。 ID3D11Device::CheckFormatSupportID3D11Device::CheckFeatureSupport を使用して、これらの拡張形式のサポートを照会します。

拡張形式:

  • コンポーネントごとの 8 ビット リソースの BGRA 順序のサポートを追加します。
  • 整数値のスワップ チェーン バッファーのキャストを許可します。 これにより、アプリケーションは、_SRGBサフィックスを追加または削除したり、XR_BIASスワップ チェーンにレンダリングすることができます。
  • DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORMのオプションのサポートを追加します。
  • 含まれるデータが sRGB エンコードされていないかのように、DXGI_FORMAT_R16G16B16A16_FLOATスワップ チェーンが表示されることを保証します。

拡張形式の完全なセットは、XR_BIAS形式を除き、完全にサポートされているか、サポートされていません。 XR_BIAS形式は次のとおりです。

  • 任意の 9 レベルでサポートされていません
  • 10_0 レベルまたは 10_1 レベルで省略可能
  • 11_0 レベルで保証

マルチサンプルのアンチエイリアシング

MSAA の実装では、GPU 実装全体でほとんど共通点がありません。 機能レベル 10.1 では、適切に定義されたミニマがいくつか追加されましたが、より低い機能レベルでは、 ID3D11Device::CheckMultisampleQualityLevels を使用して MSAA を明示的にテストする必要があります。

Texture2D サイズ

機能レベルでは、最小サイズを作成できることを保証しますが、アプリケーションは GPU でサポートされている最大サイズまで大きなテクスチャを作成できます。 アプリケーションでは、 ID3D11Device::CreateTexture2D などのメソッドのエラーが予想されます(最大値を超えた場合)。

機能レベル 9 のアダプターの特殊な動作

D3D_FEATURE_LEVEL_9_2とD3D_FEATURE_LEVEL_9_3 D3D_FEATURE_LEVEL_9_1 3 つの最下位機能レベルは、共通の実装 DLL を共有し、D3D11CreateDevice[AndSwapchain] への IDXGIAdapter 引数をテンプレート アダプターとして扱い、デバイス作成の一部として独自のアダプターを作成します。 つまり、作成ルーチンに渡される IDXGIAdapter は、IDXGIDevice::GetAdapter を介してデバイスから取得したアダプターと同じではありません。 この影響は、渡されたアダプターから列挙された IDXGIOutputs を使用して、レベル 9 デバイスを使用して全画面表示を入力できないことです。これらの出力はデバイスのアダプターによって所有されていないためです。 渡されたテンプレート アダプターを破棄し、IDXGIDevice::GetAdapter を使用してデバイスで作成されたアダプターを取得することをお勧めします。 IDXGIDevice は、Direct3D デバイス インターフェイスから QueryInterface を使用して取得できます。

ダウンレベル ハードウェアの Direct3D 11