服务器 频道

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

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


Windows XP的Direct3D/GDI驱动架构

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


以ATI为例的Windows XP驱动模型

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


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

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

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

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

0
相关文章