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) (美国英语).