星期六, 四月 28, 2007

官方组织讲解:OpenGL 与 Vista

      OpenGL 官方组织 Khronos OpenGL ARB 工作组最近陆续收到了许多请求,希望能澄清 OpenGL 在 Windows Vista 上的性能问题。由于微软在 Vista 中引入了 Aero Glass 桌面效果和全新的显示驱动模式,因而极大地改变了用户体验,对 OpenGL 的疑问也是可以理解的,不过很多人也许没有意识到,Vista 是原生支持 OpenGL 的,这对微软来说是一个巨大的改变。

      OpenGL ARB 称,有关 OpenGL 和 Vista 大家应当记住以下三点:

1、Vista 完全支持 OpenGL 硬件加速

2、OpenGL 应用程序可以从 Vista 改进的图形资源管理机制中获益

3、Vista 上的 OpenGL 性能完全可以媲美 XP 上的

      下边逐一解释:

1、Vista 完全支持 OpenGL 硬件加速

      与 XP 中一样,Vista 里的 OpenGL 加速也是通过标准的 Windows 可安装客户端驱动程序(ICD)实现的,只是该驱动需要单独安装,否则都是只能使用软加速。

      另外从 Aero Glass 桌面合成机制上看,OpenGL 和 Direct3D 在 Vista 中的地位是等同的,都是相关图形驱动从应用程序中获得数据,并使用GPU进行硬件渲染,随后提交给桌面窗口管理器(WDM),随后合成写入桌面,实现新的用户界面效果。

      关于 DWM 对系统应能的影响:由于 DWM 本身就是个 3D 程序,因此必然会消耗 CPU 和 GPU 资源,通常情况下会导致10%的图形性能降低,因此用户需要在美丽界面和更高性能之间做出选择;不过,如果 3D 游戏等程序运行在全屏状态,DWM 就不再执行窗口合成,也不会再拖累性能。

官方组织讲解:OpenGL与Vista

2、OpenGL 应用程序可以从 Vista 改进的图形资源管理机制中获益

      Vista 窗口显示驱动模式(WDDM)提供了一个防火墙和 Thunk Layer,以提高系统整体稳定性,这与 XP 截然不同。在 XP 里,OpenGL ICD 直接与 GPU 硬件层会话,并掌握诸多底层功能,包括内存管理。

      事实上,WDDM 为 OpenGL 应用程序提供了不少潜在的益处,比如显存等此前由 OpenGL ICD 管理的图形资源现在交给了操作系统虚拟管理,又比如在多个程序运行时,OpenGL ICD 可以为每个程序开放最大的材质存储空间,并由 Vista 负责分配资源和管理时序,从而提高系统资源的整体利用效率。

3、Vista 上的 OpenGL 性能完全可以媲美 XP 上的

      有人声称 OpenGL 在 Vista 上的性能不如在 XP 上,这是不对的。下边给出专业 OpenGL 测试工具 SPECviewperf、《Doom 3》(demo1)和《Prey》(move.demo)两个 OpenGL 游戏、《上古卷轴4:湮没》(demo1)和《半条命2:第一章》(Outdoor、关闭 HDR)两个 Direct3D 游戏在两套系统上的性能比较。

      SPECviewperf 测试采用双核心 Xeon 3.0GHz 处理器、NVIDIA Quadro FX 5500 专业显卡、ForceWare 91.36 for XP、ForceWare 100.72 for Vista 驱动程序,关闭 WDM;游戏测试平台包括 AMD Athlon 64 FX-62 2.8GHz 处理器、NVIDIA GeForce 7900GTX 显卡和 ForceWare 97.73 for XP、ForceWare 101.20 for Vista 驱动程序,全屏运行。

官方组织讲解:OpenGL与Vista

官方组织讲解:OpenGL与Vista

官方组织讲解:OpenGL与Vista

      可以明显看出,开启 Aero Glass 的 DWM 的确会导致系统图形性能下降10%。当然,如果你非常喜欢新的界面,这点儿损失还是值得的。

      而游戏方面,无论 OpenGL 还是 Direct3D 都一样,Vista 下与 XP 下基本持平或略有下降,两种系统和两种 API 接口都无明显差别,而随着 Vista 的日渐成熟,整体游戏性能也会逐渐改善。

      Khronos OpenGL ARB 工作组原文链接:http://www.opengl.org/pipeline/article/vol003_9/

没有评论: