例外狀況

Direct3D 11 的某些功能未完全由功能層級指定。 本主題描述在舊版硬體上使用 Direct3D 11 時的例外狀況。 功能層級定義 (之後新增功能,而且需要更新的驅動程式) ,或可能是不同的 GPU 會實作廣泛不同的實作。 功能層級例外狀況可以收集到下列群組中:

10Level9 參考區段列出各種ID3D11DeviceID3D11DeviceCoNtext方法在不同 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的選擇性支援。
  • 保證DXGI_FORMAT_R16G16B16A16_FLOAT交換鏈結的呈現方式,就像包含的資料不是 sRGB 編碼一樣。

完整支援或不支援擴充格式的完整集合,但XR_BIAS格式除外。 XR_BIAS格式為:

  • 在任何 9 層級中不受支援
  • 10_0 或 10_1 層級的選擇性
  • 保證在 11_0 層級

Multisample Anti-Aliasing

MSAA 實作在 GPU 實作之間很少常見。 功能層級 10.1 新增了一些定義完善的迷你,但在較低的功能層級中,必須使用 ID3D11Device::CheckMultisampleQualityLevels明確測試 MSAA。

Texture2D 大小

功能層級保證可以建立最小大小,不過,應用程式可以建立較大的紋理,最多可達 GPU 支援的完整大小。 如果超過最大值,應用程式應該會預期來自 ID3D11Device::CreateTexture2D 等方法失敗。

功能層級 9 的配接器特殊行為

三個最低功能層級D3D_FEATURE_LEVEL_9_1,D3D_FEATURE_LEVEL_9_2和D3D_FEATURE_LEVEL_9_3共用通用實作 DLL,並將 IDXGIAdapter 引數視為 D3D11CreateDevice[AndSwapchain] 作為範本配接器,並在裝置建立時建立自己的介面卡。 這表示傳遞至建立常式的 IDXGIAdapter 不會與透過 IDXGIDevice::GetAdapter 從裝置擷取的介面卡相同。 這一點的影響在於,從傳入配接器列舉的 IDXGIOutput 不能用來使用任何層級 9 裝置進入全螢幕,因為這些輸出不是由裝置的配接器所擁有。 最好捨棄傳入的範本配接器,並使用 IDXGIDevice::GetAdapter 擷取裝置的已建立配接器,其中可以使用 Direct3D 裝置介面中的 QueryInterface 擷取 IDXGIDevice

下層硬體上的 Direct3D 11