Windows Display Driver Model
Windows Display Driver Model(WDDM),是微軟新一代的圖形驅動程式模型。
WDDM改良了舊有的Windows XP上的XPDM架構,XPDM是使用2D 的GDI(Graphics Device Interface)或 GDI+。與XPDM相比,WDDM用於3D加速桌面,最早適用於Windows Vista之上[1] 。Windows 7支援 WDDM 1.1。
功能
編輯WDDM 使使用者能夠同時執行多個 GPU 密集型應用程式。
一個Direct3D的圖形表面(surface)的主記憶體區域,包含紋理網格(textured meshes)用於呈現2D或3D場景。WDDM允許不同的行程(process)共享整個Direct3D表面[2]。在WDDM推出之前,進程之間共享紋理是困難的,因為這將需要複製的數據,從顯存到系統主記憶體,然後返回到影片主記憶體的新裝置。
一旦某個WDDM驅動程式故障時,圖形堆疊(stack)將重新啟動驅動程式。圖形硬體故障時也會被攔截,必要時驅動程式將被重新設定。
WDDM還允許圖形硬體重設或拔出不正確的重新啟動。
限制
編輯新的驅動程式模型要求有圖形硬體支援Shader Model 2.0。根據微軟2009年的調查,大約只有1-2%的硬體使用XPDM,其餘已具備WDDM的能力。
WDDM 1.0版不支援多個驅動器在多適配器,多顯示器設定。如果一個多監控系統有多個圖形適配器供電的顯示器,無論是適配器必須使用相同的WDDM驅動程式。WDDM 1.1沒有這種限制。
版本歷史
編輯WDDM 1.0
編輯在Windows Vista引入了WDDM 1.0作為新的顯示驅動程式架構,旨在更好的執行並支援包括HDCP在內的新技術。
WDDM 1.1
編輯Windows 7 支援了 WDDM 1.1,最早在 WinHEC 2008發布此一訊息。新功能有:[3]
- DXGI 1.1,可用GDI 支援硬體 2D 加速[4](無 GDI+),以及 Direct2D/DirectWrite
- BitBlt、StretchBlt、TransparentBlt
- AlphaBlend、ColorFill
- ClearType 字型支援
- Direct3D 11 裝置驅動介面 (DDI)
- DXVA-HD DDI [5]
- Hardware video overlay DDI [6]
- 可選用 AES 128 加密
- 可選用加密後的影像壓縮
- 支援 multiple drivers 在於一個 multi-adapter 以及 multi-monitor 的設定之上[3] [7]
DXGI 1.1、Direct3D 11、Direct2D和DirectWrite也將提供與Windows Vista平臺更新。GDI / GDI+ 在Vista將繼續依靠軟體彩現。
WDDM 1.1向下相容WDDM 1.0規範,1.0和1.1的驅動程式可直接用於Windows Vista。
WDDM 1.2
編輯Windows 8 支援了 WDDM 1.2[8][9] 與 DXGI 1.2.[9][10] New features were first previewed at the Build 2011 conference and include performance improvements as well as support for stereoscopic 3D rendering and video playback.
Other major features include preemptive multitasking of the GPU with finer granularity (DMA buffer, primitive, triangle, pixel, or instruction-level),[11] reduced memory footprint, improved resource sharing, and faster timeout detection and recovery. 16-bit color surface formats (565, 5551, 4444) are mandatory in Windows 8, and Direct3D 11 Video supports YUV 4:4:4/4:2:2/4:2:0/4:1:1 video formats with 8, 10, and 16-bit precision, as well as 4 and 8-bit palettized formats.[12]
WDDM 1.2 supports display-only and render-only WDDM drivers, such as Microsoft Basic Display Driver[13] and WARP-based Microsoft Basic Render Driver which replaced kernel-mode VGA driver.
WDDM 1.0/1.1 only allows rudimentary task scheduling using "batch queue" granularity; improvements to multitasking, as well as fast context switching and support for virtual memory, were initially expected in versions tentatively named WDDM 2.0 and WDDM 2.1, which were announced at WinHEC 2006.[14][15][16]
暫譯:Windows 8包含WDDM 1.2 [8] [9]和DXGI 1.2。[9] [10]新功能首次在Build 2011大會上進行了預覽,其中包括效能改進以及對立體3D彩現和影片播放的支援。
其他主要功能包括具有更精細粒度(DMA緩衝區,原始,三角形,像素或指令級)的搶先式多任務GPU,[11]減少了主記憶體佔用,改善了資源共享,並加快了超時檢測和恢復的速度。在Windows 8中必須使用16位元彩色表面格式(565、5551、4444),並且Direct3D 11 Video支援YUV 4:4:4/4:2:2/4:2:0/4:1:1影片格式具有8位元,10位和16位元精度,以及4位元和8位元調色板化格式。[12]
WDDM 1.2支援僅顯示和僅彩現的WDDM驅動程式,例如Microsoft Basic Display Driver [13]和基於WARP的Microsoft Basic Render Driver,它們取代了核心模式VGA驅動程式。
WDDM 1.0 / 1.1僅允許使用「批處理隊列」粒度進行基本任務調度;最初期望在WinHEC 2006上宣布的暫定名為WDDM 2.0和WDDM 2.1的版本中對多任務進行改進,並提供快速的上下文切換和對虛擬主記憶體的支援。[14] [15] [16]
WDDM 1.3
編輯Windows 8.1 includes WDDM 1.3[17] and DXGI 1.3.[18] New additions include the ability to trim DXGI adapter memory usage, multi-plane overlays, overlapping swap chains and swap chain scaling, select backbuffer subregion for swap chain and lower-latency swap chain presentation. Driver feature additions include wireless displays (Miracast), YUV format ranges, cross-adapter resources and GPU engine enumeration capabilities.
暫譯:Windows 8.1包括WDDM 1.3 [17]和DXGI 1.3。[18] 新增加的功能包括以下功能:修整DXGI適配器的主記憶體使用量,多平面覆蓋,重疊的交換鍊和交換鏈縮放,為交換鍊和較低延遲交換鍊錶示選擇backbuffer子區域。 驅動程式功能的增加包括無線顯示(Miracast),YUV格式範圍,跨適配器資源和GPU引擎枚舉功能。
WDDM 2.0
編輯2006年又有WDDM 2.0的訊息,WDDM2.0版能夠解決GPU多工處理問題,但需要新一代GPU硬體支援才可以完成。 2014年,微軟於Build 2014 開發者大會公佈下一代DirectX API Direct X 12。與此同時DirectX 12需要建基於WDDM 2.0上,Direct X 12及WDDM 2.0 將內建於Windows 10內[19] DirectX 12將廢除自動資源管理和任務管線管理,允許開發人員可低階控制顯示卡的記憶體和彩現狀態。WDDM 2.0 降低支援虛擬記憶體尋扯的 GPU 於核心模式的驅動程式工作量。[20]並且使用者模式的驅動程式可並列執行多執行緒,從而降低CPU使用率。[21][22][23]
WDDM 2.1
編輯Windows 10周年更新中包含WDDM 2.1,它支援Shader Model 6.0 (功能級別 12_0 和 12_1是強制性的)[24] 和支援 HDR10(一種 10 位高動態範圍、寬色域格式,[25] 在 ITU-T Rec. 2100/Rec.2020 中定義)的 DXGI 1.5,以及可變重新整理頻率。[26]
WDDM 2.2
編輯Windows 10 創作者更新中包含了WDDM 2.2,為了Windows Holographic平臺上VR、AR及MR的立體彩現和DXGI 1.6[27]而打造。
WDDM 2.3
編輯在Windows 10 秋季創作者更新(版本 1709)中包含 WDDM 2.3。
WDDM 2.4
編輯Windows 10 April 2018 更新(版本 1803)包含 WDDM 2.4。
WDDM 2.5
編輯Windows 10 十月 2018 更新(版本 1809)包含 WDDM 2.5。[28]
WDDM 2.6
編輯Windows 10 May 2019 更新(版本 1903)包含 WDDM 2.6。[28]
WDDM 2.7
編輯Windows 10 2004版本中包含WDDM 2.7[29]。
WDDM 2.8
編輯Windows 10 Insider Preview Manganese 包含 WDDM 2.8,但從未公開展示支援它的驅動程式,並且已跳過「Iron」和「Cobalt」開發版本。
WDDM 2.9
編輯Windows 10 Insider Preview「Iron」中的 WDDM 2.9 將為 Windows Subsystem for Linux 2 (WSL 2) [30]帶來對 GPU 硬體加速的支援,並支援功能級別 12_2[31] 和 HLSL Shader Model 6.6[32]。
WDDM 3.0
編輯Windows 10 Build 21390 和 Windows 11 包含WDDM 3.0。
WDDM 3.1
編輯Windows 11 2022 更新(版本 22H2)包含 WDDM 3.1。[33]
WDDM 3.2
編輯Windows 11 Insider Preview 內部版本 25xxx(版本 23H2)包含 WDDM 3.2。
注釋
編輯- ^ Windows Vista Display Driver Model. [2017-10-28]. (原始內容存檔於2019-02-11).
- ^ Cross Process Resource Sharing. [2017-10-28]. (原始內容存檔於2017-10-28).
- ^ 3.0 3.1 WHDC: Graphics Guide for Windows 7. Microsoft. 12-06-2009 [2017-10-28]. (原始內容存檔於2011-01-03).
- ^ Windows DDK - GDI Hardware Acceleration. MSDN. [2009-06-14]. (原始內容存檔於2014-04-26).
- ^ Windows DDK - DXVA-HD DDI. MSDN. [2009-06-13]. (原始內容存檔於2016-05-27).
- ^ Windows DDK - Overlay DDI. MSDN. [2009-06-13]. (原始內容存檔於2014-04-26).
- ^ Windows DDK - Multiple Monitors and Video Present Networks. MSDN. [2010-07-14]. (原始內容存檔於2014-04-26).
- ^ Windows Developer Preview - New for Display devices. MSDN. Microsoft. 16 November 2013 [9 December 2013]. (原始內容存檔於2012-02-24).
- ^ 9.0 9.1 Windows Display Driver Model Enhancements in Windows Developer Preview. MSDN. Microsoft. 28 September 2012 [9 December 2013]. (原始內容存檔於2012-02-24).
- ^ DXGI 1.2 Improvements. MSDN. Microsoft. 16 November 2013 [9 December 2013]. (原始內容存檔於2012-02-24).
- ^ DXGI_Graphics_Preemption_Granularity Enumeration. MSDN. Microsoft. 16 November 2013 [9 December 2013]. (原始內容存檔於2012-02-24).
- ^ DXGI_FORMAT enumeration. MSDN. Microsoft. 16 November 2013 [9 December 2013]. (原始內容存檔於2012-02-24).
- ^ Microsoft Basic Display Driver. [2017-10-28]. (原始內容存檔於2016-10-19).
- ^ Al-Kady, Nabeel. Display Driver Logistics And Testing. WinHEC 2006. Microsoft. [9 December 2013]. (原始內容存檔於2020-06-06).
- ^ Pronovost, Steve. Windows Display Driver Model (WDDM) v2 And Beyond. WinHEC 2006. Microsoft. [9 December 2013]. (原始內容存檔於2022-05-07).
- ^ Dan Warne. Windows graphics system to be overhauled. APC Magazine. June 1, 2006 [20 February 2015]. (原始內容存檔於2019-01-05).
- ^ What's new for Windows 8.1 Preview display drivers (WDDM 1.3). MSDN. Microsoft. 16 November 2013 [9 December 2013]. (原始內容存檔於2016-03-04).
- ^ DXGI 1.3 Improvements. MSDN. Microsoft. 16 November 2013 [9 December 2013]. (原始內容存檔於2018-06-20).
- ^ Smith, Ryan. The DirectX 12 Performance Preview: AMD, NVIDIA, & Star Swarm. AnandTech. Purch. 6 February 2015 [2017-10-28]. (原始內容存檔於2022-05-13).
- ^ 存档副本. [2015-04-04]. (原始內容存檔於2015-07-01).
- ^ https://channel9.msdn.com/Events/Build/2014/3-564 (頁面存檔備份,存於網際網路檔案館) Max McMullen. Direct3D 12 API Preview. Build 2014, session 3-564
- ^ Moreton, Henry. DirectX 12: A Major Stride for Gaming | NVIDIA Blog. Blogs.nvidia.com. 2014-03-20 [2014-03-26]. (原始內容存檔於2021-08-04).
- ^ DirectX 12 - DirectX Developer Blog - Site Home - MSDN Blogs. Blogs.msdn.com. 2014-03-20 [2014-03-26]. (原始內容存檔於2016-02-27).
- ^ HLSL Shader Model 6.0. [2017-10-28]. (原始內容存檔於2018-06-19).
- ^ High Dynamic Range and Wide Color Gamut. [2017-10-28]. (原始內容存檔於2018-06-19).
- ^ Variable refresh rate displays. [2017-10-28]. (原始內容存檔於2018-06-19).
- ^ 存档副本. [2017-10-28]. (原始內容存檔於2021-11-07).
- ^ 28.0 28.1 lorihollasch. Features added in prior WDDM 2.X versions - Windows drivers. learn.microsoft.com. [2023-04-29]. (原始內容存檔於2023-06-08) (美國英語).
- ^ Win 10 v2004 大更新今年 5 月份發佈. [2020-02-25]. (原始內容存檔於2021-08-14).
- ^ Pronovost, Steve. DirectX ❤ Linux. DirectX Developer Blog. 2020-05-19 [2023-04-29]. (原始內容存檔於2023-04-29) (美國英語).
- ^ Andrews, Claire. New in DirectX— Feature Level 12_2. DirectX Developer Blog. 2020-08-27 [2023-04-29]. (原始內容存檔於2023-05-01) (美國英語).
- ^ Roth, Greg. Announcing HLSL Shader Model 6.6. DirectX Developer Blog. 2021-04-20 [2023-04-29]. (原始內容存檔於2023-05-28) (美國英語).
- ^ Blog, Windows Experience. Available today: The Windows 11 2022 Update. Windows Experience Blog. 2022-09-20 [2023-04-29]. (原始內容存檔於2023-03-22) (美國英語).