服务器 频道

垂直同步之谜 XP/Vista与3D性能测试

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


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

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

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

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


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

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

(完)

0
相关文章