WDDM
图形驱动程序模型
WDDM的全名是Windows Display Driver Model,是一种微软新一代的图形驱动程序模型。
模型简介
是对旧版的Windows XP上的XPDM架构的改良,XPDM使用2D 的GDIGraphics Device Interface)或 GDI+,与XPDM相比,WDDM是3D加速桌面,最早应用于WIndows Vista系统中。Window7 系统支持 WDDM 1.1。而随着windows8 的出现,WDDM再次更新至WDDM1.2版本。Windows8.1(Windows Blue)则将WDDM的版本更新到1.3,随着windows10 ,WDDM再次更新至WDDM 2.0版本,将支持DX12
功能
WDDM 使用户能够同时运行多个 GPU 密集型应用程序
一个Direct3D的图形表面(surface)的内存区域,包含纹理网格(textured meshes)用于呈现2D或3D场景。WDDM 允许不同的线程(process)共享整个Direct3D表面。在WDDM 推出之前, 进程之间共享纹理是困难的,因为这个过程需要能够将数据从视频内存显存)复制到系统内存,然后返回到视频内存的新设备。
一旦某个WDDM驱动程序出现故障,图形堆栈(stack)将重新启动驱动程序。图形硬件故障时也会被拦截,必要时驱动程序将被重新设定。
WDDM还允许在显示驱动出错时,重置显示设备,而不用重新启动计算机。
WindowsXP时代有20%的系统蓝屏故障是显卡驱动问题造成的。WDDM在技术水平上有两个组件:一个内核模式驱动程序(KMD)和一个执行大部分密集计算的用户模式驱动程序。新版WDDM模型已将代码的大部分移出了内核模式。由于与显示相关的操作只在用户模式下完成,所以大大提高了系统稳定性
限制
新版的WDDM模型要求显卡硬件支持Shader Model 2.0。除此之外,对显卡的其他一些硬件特性也有所要求,导致一些硬件上支持SM2.0的显卡也无法通过WDDM的数字驱动认证(例如GMA900集成显卡就无法通过)。但根据微软2009年的一份调查,98%以上运行Windows Vista的硬件设备都已具备使用WDDM的条件。
WDDM 1.0版不支持多显示器,多显示适配器条件下的多驱动设置。在有多个显示器的条件下,如果有两个或以上的显示适配器同时进行信号输出,所有的显示适配器都必须使用相同的WDDM驱动。但是WDDM1.0版本下不允许多个显示驱动同时工作,即只能运行一个显示驱动程序。而WDDM1.1则无此限制。
模型1.1
Windows 7 支持 WDDM 1.1; 最早在 WinHEC 2008发布此一讯息. 新功能有:
DXGI 1.1, 可用GDI 支持硬件 2D 加速 (无 GDI+) 以及 Direct2D/DirectWriteBitBlt, StretchBlt, TransparentBltAlphaBlend, ColorFillClearType 字型支持Direct3D 11 装置驱动接口 (DDI)DXVA-HD DDI Hardware video overlay DDI 可选用 AES 128 加密可选用加密后的图形压缩支持 multiple drivers 在于一个 multi-adapter 以及 multi-monitor 的设定之上DXGI 1.1, Direct3D 11,Direct2D和DirectWrite也将提供与Windows Vista平台更新。GDI / GDI +在Vista将继续依靠软件渲染。
WDDM 1.1向后兼容WDDM 1.0规范,1.0和1.1的驱动程序可直接用于Windows Vista。
模型1.2
显卡驱动
WDDM 1.2还引入了三种显卡驱动版本,分为Full Graphics Driver、Display Only Driver和Render Only Driver,区别如下:
(1)Full Graphics Driver:功能完整版本,支持2D和3D硬件加速,拥有完整的渲染(Render)、显示(Display)和视频(Video)功能。这一驱动是WDDM 1.0/1.1支持且支持的必备功能,所有Win8系统上的显卡都必须支持Full Graphics Driver,具备作为主卡启动的能力。
(2) Display Only Driver:顾名思义,硬件厂商编写的这一版本的驱动只有显示功能,2D和3D加速功能是操作系统用软件模拟的,使用这个驱动就不能作为主卡。
(3) Render Only Driver:只有最基本的渲染功能,同样不能作为主卡启动。
这三种驱动中第一种是所有WDDM中都必须要有的,也是功能最完整的,第二、第三种是WDDM 1.2中才出现的,之前的WDDM并不支持。另外,这个功能变化对普通用户并没有什么影响,主要是方便厂商编写驱动用的。
WDDM 1.2对普通用户的影响体现在两个地方,第一是性能和用户体验改进,第二个层次则是对DirectX的改进,进而影响游戏性能。
性能提升
1. 减少内存占用进而提高系统响应速度
内存占用过多会明显降低系统响应速度,特别是在集显平台,由于还要划分内存做显存之用,如何管理好被占用的内存也会影响系统速度。Win8通过先进的内存分配与回收机制减少了内存占用,系统休眠及恢复速度也得以优化。
2. 提高GPU容错以改善系统可靠性
这个前面也提到过一点,驱动程序因为各种意
外无响应时,Vista/Win7系统会尝试自动恢复驱动,减少蓝屏、死机等现象。Win8系统中,微软改进了GPU优先权(GPU preemption)和TDR(Timeout Detection and Recovery,超时检测和恢复处理),系统的可靠性有望进一步提升。
3. 提高出现性能问题时的诊断能力
越来越多的程序和应用开始使用GPU资源,因此提高性能诊断问题的能力愈发重要。在这点上,微软通过用户模式驱动日志、禁用FPO(Frame Pointer Omission)优化、XPS光栅化等方式提高了诊断能力。
在提升参数的同时,微软也在不断提升用户体验,意在让参数的提升真正转换为用户实际体验的提升。
功能与改进
1. 支持3D立体显示
3D显示是目前的热门,也是未来的大趋势,Win8也顺理成章地推出了Stereoscopic 3D立体显示技术。不过要实现立体显示依然需要软硬件条件的支持,比如3D显示器、3D显卡(目前的DX11显卡基本上都支持了)、3D驱动以及相应的应用程序。
2. D3D11视频播放
虽然现在为了兼容不同显卡,视频播放可以使用D3D9、D3D10等API,但是Win8系统中全部视频播放会统一到D3D11 API中,这样可以简化编程,提高效率。此外,D3D11在3D播放、DXVA硬解上更有优势,统一视频播放API好处多多。当然,要想更好地使用Win8系统,DX11显卡是少不了的。
3. 优化屏幕旋转
传统的台机和笔记本上频繁旋转屏幕并不常见,但是Win8还要面向平板电脑,后者应用中旋转屏幕是家常便饭,这就要求屏幕旋转时桌面能迅速转换。Win8针对此类应用做了大量优化以获得平滑无缝的屏幕旋转体验。
4. 支持以容器ID显示各种设备
近年来丰富的外设产品层出不穷,通过蓝牙USB、WiFi等各种方式连接到电脑上,容器ID是Win7上使用的外设分类管理的方法,Win8将之扩大,可以通过容器ID分门别类显示各种不同外设,使用和管理更方便。
5. 支持Windows与WDDM驱动之间无缝切换
部分场合中软件或者硬件需要重置,比如升级驱动时屏幕会闪光或者抖动几次以适应变化,Win8系统中就可以在这几种状态中无缝切换。
6. 优化驱动以降低能耗
这个功能也主要针对平板这样的智能设备,不过电脑一样可以从中受益。通过DirectFlip和GPU Power Management技术降低GPU待机和活跃时的功耗。
版本总结
WDDM 1.2虽然版本号变化不大,其实功能改进还是很多的,特别是Win8还要支持平板电脑这样的智能设备,所以在视频播放、续航时间、功耗管理、屏幕旋转、外设管理这一类问题上重点加强,对PC而言,3D立体显示、可靠性加强、降低内存占用等改进也是非常重要的。
另外,WDDM不仅影响用户的操作体验,它还牵涉到DirectX API,即WDDM的改进还会对D3D游戏性能产生一定影响。
最新修订时间:2024-01-26 05:57
目录
概述
模型简介
功能
参考资料