Direct3D 功能層級

為了處理新電腦和現有機器中的視訊卡多樣性,Microsoft Direct3D 11 引進了功能層級的概念。 本主題討論 Direct3D 功能層級。

每個視訊卡會實作特定層級的 Microsoft DirectX (DX) 功能,視安裝 (GPU) 的圖形處理器而定。 在 Microsoft Direct3D 舊版中,可以找出視訊卡實作的 Direct3D 版本,然後隨之程式設計您的應用程式。

使用 Direct3D 11 時,引進了稱為功能層級的新範例。 功能層級是一組妥善定義的 GPU 功能。 例如,9_1 功能層級會實作 Microsoft Direct3D 9 中實作的功能,這會公開著色器模型 的功能ps_2_xvs_2_x,而 11_0 功能層級會實作 Direct3D 11 中實作的功能。

現在當您建立裝置時,您可以嘗試為您想要要求的功能層級建立裝置。 如果裝置建立運作,該功能層級則存在,否則,硬體不支援該功能層級。 您可以嘗試重新建立較低功能層級的裝置,或您可以選擇離開應用程式。 如需建立裝置的詳細資訊,請參閱 D3D11CreateDevice 函式。

使用功能層級,您可以開發 Direct3D 9、Microsoft Direct3D 10 或 Direct3D 11 的應用程式,然後在 9、10 或 11 硬體 (上執行該應用程式,但有一些例外狀況;例如,新的 11 個功能不會在現有的 9 張卡片上執行) 。 以下是功能層級的其他幾個基本屬性:

  • 允許建立裝置的 GPU 符合或超過該功能層級的功能。
  • 功能層級一律包含先前或較低功能層級的功能。
  • 功能層級並不表示效能,只是功能。 效能取決於硬體實作。
  • 當您建立 Direct3D 11 裝置時,請選擇功能層級。

如需在特定功能層級上建立非硬體類型裝置的限制資訊,請參閱 建立 WARP 和參考裝置的限制

為了協助您決定要設計哪些功能層級,請比較每個功能層級的功能。

10Level9 參考區段列出各種ID3D11DeviceID3D11DeviceCoNtext方法在不同 10Level9 功能層級的行為差異。

版本號碼的格式

Direct3D 版本、著色器模型和功能層級有三種格式。

  • Direct3D 版本使用句號;例如,Direct3D 12.0。
  • 著色器模型使用句號;例如,著色器模型 5.1。
  • 功能層級使用底線;例如,功能層級 12_0。

Direct3D 12 功能支援 (功能層級 12_2 到 11_0)

下列功能適用于列出的功能層級。 頂端資料列的標題是 Direct3D 12 功能層級。 左側資料行中的標題是功能。 另請參閱 表格的註腳

功能 \ 功能層級 12_28 12_10 12_00 11_1 1 11_0
著色器模型 6.5 5.12 5.12 5.12 5.12
WDDM 驅動程式模型 2.0 1.x 1.x 1.x 1.x
Raytracing 第 1.1 層 選用 選用 選用 選擇性
可變網底速率 第 2 層 選用 選用 選用 選擇性
網格著色器 第 1 層 選用 選用 選用 選擇性
取樣器意見反應 第 0.9 層 選用 選用 選用 選擇性
資源系結 第 3 層 第 3 層 第 3 層 第 3 層 第 1 層
根簽章 1.1 1 1 1 1
深度界限測試 選用 選用 選用 選擇性
立即寫入緩衝區 Direct、Compute、Bundle 選用 選用 選用 選擇性
GPU 虛擬位址位 4010 4010 4010
並排顯示的資源 第 3 層 第 2 層6 第 2 層6 選用 選擇性
保守點陣化 第 3 層 第 1層 6 選用 選用
轉譯器順序檢視 選用 選用
最小/最大篩選 選用
對應預設緩衝區 N/A 選用 選用 選用 選擇性
著色器指定的樣板參考值 選用 選用 選用 選用
具類型的未排序存取檢視載入 18 種格式,更選擇性 18 種格式,更選擇性 18 種格式,更選擇性 3 種格式,更選擇性 3 種格式,更選擇性
幾何著色器
串流輸出
DirectCompute / 計算著色器
殼層和網域著色器
功能 \ 功能層級 12_28 12_10 12_00 11_1 1 11_0
紋理資源陣列
Cubemap 資源陣列
BC4/BC5 壓縮
BC6H/BC7 壓縮
Alpha 到涵蓋範圍
擴充格式 (BGRA,依此類)
10 位元 XR 高彩格式
邏輯作業 (輸出合併) 選擇性 1
目標獨立點陣化
具有 ForcedSampleCount 1 的多個轉譯目標 (MRT) 選擇性 1
UAV 位置 階層式 9 64 64 64 8
每個階段的UAV
功能 \ 功能層級 12_28 12_10 12_00 11_11 11_0
僅限 UAV 轉譯的強制樣本計數上限 16 16 16 16 8
常數緩衝區位移和部分更新 選擇性 1
每個圖元 16 位 (bpp) 格式 選擇性 1
紋理維度上限 16384 16384 16384 16384 16384
Cubemap 維度上限 16384 16384 16384 16384 16384
最大磁片區範圍 2048 2048 2048 2048 2048
紋理重複上限 16384 16384 16384 16384 16384
Max Anisotropy 16 16 16 16 16
基本計數上限 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1
頂點索引上限 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1
輸入位置上限 32 32 32 32 32
同時轉譯目標 8 8 8 8 8
功能 \ 功能層級 12_28 12_10 12_00 11_11 11_0
遮蔽查詢
個別 Alpha 混合
鏡像一次
重迭頂點元素
獨立寫入遮罩
實例
非 2 的電源有條件地為 3
無條件 2 的非電源4

此外,會設定下列旗標:

功能 \ 功能層級 12_28
WaveOps true
OutputMergerLogicOp true
VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportWithoutGSEmulation true
CopyQueueTimestampQueriesSupported true
CastingFullyTypedFormatSupported true
Int64ShaderOps true

Direct3D 11 功能支援 (功能層級 12_1 到 9_1)

下列功能適用于列出的功能層級。 頂端資料列的標題為 Direct3D 11 功能層級。 左側資料行中的標題是特徵。 另請參閱 資料表的註腳

功能 \ 功能層級 12_10 12_00 11_11 11_0 10_1 10_0 9_37 9_2 9_1
著色器模型 5.12 5.12 5.02 5.02 4.x 4.0 2.0 (4_0_level_9_3) [vs_2_a/ps_2_x]5 2.0 (4_0_level_9_1) 2.0 (4_0_level_9_1)
WDDM 驅動程式模型 1.x 1.x 1.x 1.x 1.x 1.x 1.x 1.x 1.x
磚化資源 第 2 層6 第 2 層6 選用 選用
保守點陣化 第 1 層6 選用 選用
點陣化順序檢視 選用 選用
最小/最大篩選 選用
對應預設緩衝區 選用 選用 選用 選用
著色器指定的樣板參考值 選用 選用 選用
輸入未排序的存取檢視載入 18 種格式,更多選擇性 18 種格式,更多選擇性 3 種格式,更多選擇性 3 種格式,更多選擇性
幾何著色器
串流輸出
DirectCompute / 計算著色器 選用 選擇性 N/A N/A N/A
殼層和網域著色器
功能 \ 功能層級 12_10 12_00 11_11 11_0 10_1 10_0 9_37 9_2 9_1
紋理資源陣列
Cubemap 資源陣列
BC4/BC5 壓縮
BC6H/BC7 壓縮
Alpha 到涵蓋範圍
擴充格式 (BGRA 等) 選用 選擇性 Yes
10 位元 XR 高彩格式 選用 選擇性 N/A N/A N/A
邏輯作業 (輸出合併) 選擇性 1 選擇性 1 選擇性 1
與目標無關的點陣化
使用 ForcedSampleCount 1 (MRT) 多個轉譯目標 選擇性 1 選擇性 1 選擇性 1
UAV 位置 64 64 64 8 1 1 N/A N/A N/A
每個階段的 UAV N/A N/A N/A
功能 \ 功能層級 12_10 12_00 11_1 1 11_0 10_1 10_0 9_37 9_2 9_1
僅限 UAV 轉譯的強制樣本計數上限 16 16 16 8 N/A N/A N/A N/A N/A
常數緩衝區位移和部分更新 選擇性 1 選擇性 1 選擇性 1 1 1 1
每個圖元 16 位 (bpp) 格式 選擇性 1 選擇性 1 選擇性 1 選擇性 1 選擇性 1 選擇性 1
紋理維度上限 16384 16384 16384 16384 8192 8192 4096 2048 2048
Cubemap 維度上限 16384 16384 16384 16384 8192 8192 4096 512 512
最大磁片區範圍 2048 2048 2048 2048 2048 2048 256 256 256
紋理重複上限 16384 16384 16384 16384 8192 8192 8192 2048 128
Max Anisotropy 16 16 16 16 16 16 16 16 2
基本計數上限 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1 1048575 1048575 65535
頂點索引上限 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1 1048575 1048575 65534
輸入位置上限 32 32 32 32 32 16 16 16 16
同時轉譯目標 8 8 8 8 8 8 4 1 1
功能 \ 功能層級 12_28 12_10 11_11 11_0 10_1 10_0 9_37 9_2 9_1
遮蔽查詢
個別 Alpha 混合
鏡像一次
重迭頂點元素
獨立寫入遮罩
實例 7
非 2 的電源有條件地為 3
無條件 2 的非電源4

資料表的註腳

0 需要 Direct3D 11.3 或 Direct3D 12 執行時間。

1 需要 Direct3D 11.1 執行時間。

2 著色器模型 5.0 和更新版本可以選擇性地支援雙精確度著色器、擴充雙精確度著色器、 SAD4 著色器指令,以及部分精確度著色器。 若要判斷 DirectX 11 可用的著色器模型 5.0 選項,請呼叫 ID3D11Device::CheckFeatureSupport。 某些相容性取決於您執行的硬體。 無論使用的功能層級為何,著色器模型 5.1 和更新版本都僅透過 DirectX 12 API 支援。 DirectX 11 最多支援著色器模型 5.0。 DirectX 12 API 只會降低至功能層級 11_0。

3 在功能層級 9_1、9_2 和 9_3 上,顯示裝置支援使用 2D 紋理,且維度不是兩個條件中的兩個。 首先,每個紋理只能建立一個 MIP 對應層級,第二個是不允許紋理的包裝取樣器模式 (也就是 AddressUAddressVAddressW 成員 D3D11_SAMPLER_DESC無法設定D3D11_TEXTURE_ADDRESS_WRAP) 。

4 在功能層級 10_0、10_1 和 11_0 上,顯示裝置會無條件地支援使用 2D 紋理,且維度不是兩個。

5 個頂點著色器 2a,具有 256 個指示、32 個暫存暫存器、深度 4 的靜態流程式控制制、深度 24 的動態流程式控制制,以及D3DVS20CAPS_PREDICATION。 具有 512 指令的圖元著色器 2x、32 個暫存暫存器、深度 4 的靜態流程式控制制、深度 24 的動態流程式控制制、深度 24、D3DPS20CAPS_ARBITRARYSWIZZLE、D3DPS20CAPS_GRADIENTINSTRUCTIONS、D3DPS20CAPS_PREDICATION、D3DPS20CAPS_NODEPENDENTREADLIMIT和D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT。

6 較高層選擇性。

7 針對功能層級 9_3,唯一支援的轉譯方法是 DrawDrawIndexedDrawIndexInstanced。 此外,對於功能層級 9_3,僅支援透過 Draw轉譯點清單呈現。

8 Windows 11支援。

9 在 Direct3D 12 API 中,CBV/SRV/UAV 堆積中的描述項數目有限制。 如需詳細資訊 ,請參閱硬體層 。 另外,所有階段中所有描述項資料表中的 UAV 數目有限制,其以 資源系結層為基礎。

10 A 64 位進程需要每個資源和每個進程可用的 40 位位址空間。 32 位進程可能限制為 31 位的位址空間。 API 中有兩個功能 (上限) ,也就是每個進程和每個資源。 每個進程位址空間一律大於或等於每個資源位址空間。

如需不同硬體功能層級的格式支援詳細資料,請參閱: