xp服务器性能检测,垂直同步之谜 XP/Vista与3D性能测试

【IT168评测中心】在前段时间我们在测试Quadro系列显卡性能的时候,出现过SPECviewperf性能过低的情况,现在我们知道这种情况是和一个“垂直同步”的选项相关的,不过,其背后的故事没有这么简单。

51d753d6457fd2d6c3d2004957f560bb.png

SPECviewperf 10:基于OpenGL的专业3D性能基准测试程序

实际上,垂直同步影响到性能不仅仅是在SPECviewperf下,其它程序上也有类似的情况。SPECviewperf是SPEC(Standard Performance Evaluation Corporation)的一个专业3D性能基准测试程序,它基于OpenGL(GL:Graphics Library),OpenGL是专业绘图领域常用的一种接口。这实际上,在Windows XP系统下,垂直刷新同步的影响对所有的OpenGL应用都会生效。

143e5ed60d15b876d13fb9fe59646ba1.png

开放的图形接口:OpenGL

要搞清楚这个问题,要先从操作系统的驱动模型讲起,在Windows XP里面,OpenGL ICD(installable client driver)驱动直接与GPU硬件层会话,直接操控硬件并掌握所有的底层功能,如内存管理等也包揽在内。

bf32302faafb3a40f2e4d082b5957585.png

Windows XP的Direct3D/GDI驱动架构

在XP中,3D窗口对于系统来说就像是在桌面上开了一个洞——因为通常的2D窗口使用的是GDI(Graphics Device Interface,图形设备接口,负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出),如Direct3D和OpenGL都是用了独立的输出路径。

3b3adf8dc4fdf7e245bca8a5ba82142f.png

以ATI为例的Windows XP驱动模型

在Windows XP中,Direct3D、OpenGL、GDI三种图形接口都需要厂商提供驱动程序来进行处理,并且,最终的混合工作也是由其负责——整个系统的显示速率都由驱动来控制。垂直同步的功能亦然。

e7cf13aab435dc8705d09e04862cb105.png

NVIDIA驱动中的Vertical sync垂直同步选项

Vertical sync垂直同步是涉及到显卡和显示器的一个概念。在CRT显示器中,显示器上的所有图像都是一线一线的扫描上去的(无论是隔行扫描还是逐行扫描),因此显示器都有2种同步参数——水平同步和垂直同步。其中,水平同步信号决定了显示器画出一条横越屏幕线的时间,垂直同步信号决定了显示器从屏幕顶部画到底部,再返回原始位置的时间。换句话说,我们可以将垂直同步的数值理解为CRT显示器的刷新率。

刷新率只是次要,垂直同步的重要作用是确保显示区域处于空白、可刷新状态,这样才可以充填显示内容。在不同步的情况下会发生同时渲染多个不同的帧的情况,它会引起画面“撕裂”等各种不自然的情况。对于CRT和LCD来说都是一样。

在WIndows XP的驱动模型下,当开启垂直同步时,显卡渲染完成某一图像之后,在没有垂直同步信号到达前,显卡无法绘制下一帧,这自然限制了SPECviewperf的性能。而在关闭垂直同步的情况下,图像是能多快就多快地声称。实际上,SPECviewperf是要求在Windows XP下关闭垂直同步的。

在拨开垂直迷雾 榨干Quadro显卡最终性能里,我们测试了Windows XP Professional x64系统下的垂直同步选项的影响。Windows XP Professional x64系统和Windows XP Professional x86并不是基于相同的代码树,它基于Windows Server 2003 x64,不过,同样为XP系统,它们的大架构确实是一样的,如驱动模型,如垂直同步的作用方式。

a4a109af7031e61f529e1e9f6a1a2ea9.png

SPECviewperf 9

c45888a029eefd79f4c2d06b4578ad6f.png

SPECviewperf 10:开启垂直同步

38448c3d46ad6a488f229aeeed78a928.png

SPECviewperf 10:关闭垂直同步

da99a316104d6a7350ecd85350f6e941.png

SPECviewperf 10:关闭垂直同步

80d2d1300bb73a5fb26b80c3373fa5fa.png

SPECviewperf 10:关闭垂直同步

可以看出明显的差别。

到了Windows Vista下,情况又有所不同:微软在Vista中引入了新的Aero桌面UI和全新的显示驱动模型,不仅极大地改变了用户体验,对与OpenGL的内在影响也非常巨大。Vista是原生支持OpenGL的,这对微软来说是一个巨大的改变。

Windows Vista的一个重要特性是Aero用户界面,它提供了透明度、混合等窗口功能,以及动画图标、程序画面预览等特性,实际上,Aero本身就是一个3D应用程序,它需要GPU具有一定的3D能力并和其紧密集成。Windows Vista通过DWM(Desktop Window Manager,桌面窗口管理器)来提供Aero的底层支持。

7ea4e016c7aaf4457f8b082250b415c3.png

OpenGL、Direct3D与DWM:Windows Vista的驱动模型

为了得到最终的合成桌面,所有窗口的3D内容(OpenGL或Direct3D)都要发送到DWM,由DWM混合得到最终的显示画面。DWM下,GDI不再提供硬件加速,而是通过CPU来完成)。Windows Vista同时提供了一个新的显示驱动模型来支持新的变化(使Direct3D和OpenGL处于对等的地位),新的WDDM(Windows Display Driver Model),或者叫做LDDM(Longhorn Display Driver Model)将会在Aero打开的时候提供3D窗口混合功能(无论是使用Direct3D还是OpenGL接口)。

16d2987b2141abe312a45622d7df8c8a.png

Windows Vista下的WDDM驱动模型

WDDM提供了一个由Thunk Layer组成的防火墙,它这提高了系统整体的稳定性。在以往(如XP下),驱动程序直接与GPU硬件层会话,并掌握诸多底层功能,这很容易引起问题,现在由显卡驱动带来的问题不太容易影响到整个系统(当然,问题还是有的)。此外,WDDM还改变了图形API的工作方式,以往如显存等资源由驱动程序控制,现在则统一交给操作系统管理,又比如在多个程序运行时,OpenGL ICD可以为每个程序都提供最大的材质存储空间,并且由Vista负责分配资源和管理调度,从而提高系统资源的整体利用效率。当然,由于每个程序都配置了独立的显存,这样内存占用会有所增加。

1a939531a9d56dd02df3b1722f7cb269.png

停止响应的显示驱动程序

由于Vista管理着提供给内核层的显示命令缓冲区,因此现在可以通过OS检测显卡故障,通过Vista的TDR(Timeout Detection and Recovery,超时检测恢复)功能,若一个显示命令2秒内得不到执行,那么Vista就会重置图形芯片和恢复显卡驱动。并进行如图上的提示。

现在Vista下,DWM管理着最终的输出效果,驱动程序已经无法直接对最终输出的桌面进行操作,而代之的是一个输出队列。每一个程序都具有自己的输出缓冲区,如下图所示,实际上Aero就是将所有窗口的提交的最终画面通过3D变换再输出:

f5bf0b4f697f3dfd5c0947659245d8c5.png

Aero效果;Alt-Tab的任务切换效果类似

新的DWM模型对OpenGL,或者说,对我们的SPECviewperf有什么影响呢?

它影响了OpenGL垂直同步的工作形式。在以往,垂直同步影响着显卡生成内容的速率,这影响了OpenGL应用的性能,而现在在Vista下,所有的应用程序之间都是“垂直同步”的,因为如果不同步的话,不同帧率的应用程序会非常容易出现各种画面异常。在画面生成速率快过显示刷新率的情况下,有两种方法可以得到正常的画面效果:

第一种方法是限制窗口内容刷新速率为显示刷新率,实际上就是强制开启垂直同步。第二种方法是只显示在同步信号到达的那一帧,并丢弃所有其他的帧,这种方法的好处是不会限制住应用程序生成图像的速度,因为并不是所有生成的图像都会显示出来。Windows Vista DWM实现了后面的那种方法。

51d753d6457fd2d6c3d2004957f560bb.png

Vista下的SPECviewperf:开启DWM和Aero,垂直同步选项不再重要

基于架构上的改变,垂直同步的意义在XP上和Vista上就显得很不同,在XP上,打开垂直同步将会限制内容生成的速率,在Vista上,打开垂直同步不过是限制了画面刷新的速率,显卡尽可能快地生成了图像,只不过只有对应的帧才会显示出来。也就是说,在Vista下测试3D性能的时候,你不需要像XP那样特地关闭垂直同步。只有在需要进行XP和Vista对比的时候,你才需要关闭DWM(从而也关闭了Aero效果)。这个情况并不符合实际用户的情况:大部分用户都使用DWM和Aero。对于Vista来说,关闭DWM的测试是没有意义的,也不符合SPECviewperf的目标:得出真实环境下的图形性能。

(完)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值