Direct3D 功能層級
為了處理新電腦和現有機器中的視訊卡多樣性,Microsoft Direct3D 11 引進了功能層級的概念。 本主題討論 Direct3D 功能層級。
每個視訊卡會實作特定層級的 Microsoft DirectX (DX) 功能,視安裝 (GPU) 的圖形處理器而定。 在 Microsoft Direct3D 舊版中,可以找出視訊卡實作的 Direct3D 版本,然後隨之程式設計您的應用程式。
使用 Direct3D 11 時,引進了稱為功能層級的新範例。 功能層級是一組妥善定義的 GPU 功能。 例如,9_1 功能層級會實作 Microsoft Direct3D 9 中實作的功能,這會公開著色器模型 的功能ps_2_x 和 vs_2_x,而 11_0 功能層級會實作 Direct3D 11 中實作的功能。
現在當您建立裝置時,您可以嘗試為您想要要求的功能層級建立裝置。 如果裝置建立運作,該功能層級則存在,否則,硬體不支援該功能層級。 您可以嘗試重新建立較低功能層級的裝置,或您可以選擇離開應用程式。 如需建立裝置的詳細資訊,請參閱 D3D11CreateDevice 函式。
使用功能層級,您可以開發 Direct3D 9、Microsoft Direct3D 10 或 Direct3D 11 的應用程式,然後在 9、10 或 11 硬體 (上執行該應用程式,但有一些例外狀況;例如,新的 11 個功能不會在現有的 9 張卡片上執行) 。 以下是功能層級的其他幾個基本屬性:
- 允許建立裝置的 GPU 符合或超過該功能層級的功能。
- 功能層級一律包含先前或較低功能層級的功能。
- 功能層級並不表示效能,只是功能。 效能取決於硬體實作。
- 當您建立 Direct3D 11 裝置時,請選擇功能層級。
如需在特定功能層級上建立非硬體類型裝置的限制資訊,請參閱 建立 WARP 和參考裝置的限制。
為了協助您決定要設計哪些功能層級,請比較每個功能層級的功能。
10Level9 參考區段列出各種ID3D11Device和ID3D11DeviceCoNtext方法在不同 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 對應層級,第二個是不允許紋理的包裝取樣器模式 (也就是 AddressU、 AddressV和 AddressW 成員 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,唯一支援的轉譯方法是 Draw、 DrawIndexed和 DrawIndexInstanced。 此外,對於功能層級 9_3,僅支援透過 Draw轉譯點清單呈現。
8 Windows 11支援。
9 在 Direct3D 12 API 中,CBV/SRV/UAV 堆積中的描述項數目有限制。 如需詳細資訊 ,請參閱硬體層 。 另外,所有階段中所有描述項資料表中的 UAV 數目有限制,其以 資源系結層為基礎。
10 A 64 位進程需要每個資源和每個進程可用的 40 位位址空間。 32 位進程可能限制為 31 位的位址空間。 API 中有兩個功能 (上限) ,也就是每個進程和每個資源。 每個進程位址空間一律大於或等於每個資源位址空間。
如需不同硬體功能層級的格式支援詳細資料,請參閱:
- Direct3D 功能層級 12.1 硬體的 DXGI 格式支援
- Direct3D 功能層級 12.0 硬體的 DXGI 格式支援
- Direct3D 功能層級 11.1 硬體的 DXGI 格式支援
- Direct3D 功能層級 11.0 硬體的 DXGI 格式支援
- Direct3D 10Level9 格式的硬體支援
- Direct3D 10.1 格式的硬體支援
- Direct3D 10 格式的硬體支援