服务器 频道

性能提升10% Vista/7系统性能对比测试

  先从WDDM模型说起,它是图形架构的基础,Windows 7的改动对图形性能/系统性能的影响一部分被包括在这里:


Windows 7核心图形架构

  Windows应用程序使用各种API和系统图形组件通信,比如GDI、Direct3D、OpenGL。而系统组件通过WDDM与硬件交互。我们首先最关注的是GDI,Graphics Device Interface,是Windows 最重要的部分之一,它大部分由GDI32.DLL 库中处理。GDI 的主要目的之一是支持与设备无关的图形编程,让我们摆脱DOS/Windows 3.x下的编写图形应用还要包括显卡驱动的痛苦,Windows GDI 使我们对图形的编程变得相对简单了很多。Windows的日常应用都是基于图形界面,因此GDI应用非常频繁,显卡还特地地支持GDI加速。

  从Vista起,Windows就采用了和XP使用的XPDM不同的新的驱动模型:WDDM,使用的驱动模型在很大程度上决定了一个系统的图形特性。Vista使用的WDDM版本为1.0,而Windows 7使用的改进版本为WDDM 1.1。


WDDM 1.1带来的改动挺多的
  为什么WDDM 1.1会带来性能提升呢?我们先来看看它之前的WDDM 1.0具有什么局限性:
 

WDDM:合成模型
 
  在垂直同步之谜 XP/Vista与3D性能测试中,笔者解释过XP/Vista的模型的不同之处,在WDDM模型下,所有的应用程序生成的显示画面最后会在DWM内进行合成为单一的最后输出画面,因此获得了更好的显示效果、额外效果以及可以支持更大的桌面,不过,原始的WDDM 1.0只是实现了这个大架构上的转换,细节上仍未够完美:

在Vista下,GDI和DirectX具有着不同的处理方法:Direct3D是硬件加速的,而GDI则不是,因此Vista用户在一些图形程序上会感到比XP慢;而且GDI应用程序先经过CPU软件处理到系统内存上,再传输到显卡驱动分配的GDI显存区域上,再由DWM负责将画面合成输出到显示器

Windows 7当中,GDI获得了硬件加速——不过在混合使用GDI和Direct3D API的时候,GDI仍然无法硬件加速,然而,GDI直接输出到驱动的GDI显存区域,减少了一个步骤,同时降低了内存消耗;显然,使用混合API来进行图形编程并不是一个好主意

老的WDDM 1.0处理GDI应用程序就如前面说过的一样

而在Windows 7 WDDM 1.1模型当中,单独的GDI将会通过WDDM与GPU进行硬件加速,同时经过GDI显存区域输出到DWM,表现在实际操作上,就是大部分窗口操作都变得比Vista更流畅,日常工作更快捷
0
相关文章