http://www.khronos.cn/news/press/2007/04/23.shtml/
Windows Vista 和 OpenGL 的事实
Khronos OpenGL ARB 工作组
<chsdate year="2007" month="4" day="20" islunardate="False" isrocdate="False" w:st="on"><span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-fareast-font-family: 宋体; mso-fareast-language: ZH-CN">2007</span><span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">年</span><span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-fareast-font-family: 宋体; mso-fareast-language: ZH-CN">4</span><span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">月</span><span lang="EN-US" style="FONT-SIZE: 10pt; FONT-FAMILY: Verdana; mso-fareast-font-family: 宋体; mso-fareast-language: ZH-CN">20</span><span style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-fareast-language: ZH-CN; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">日</span></chsdate>
Khronos OpenGL ARB 工作组近日收到了关于澄清OpenGL 在Windows Vista上运行性能的请求。基于Microsoft 已经通过 Windows Aero 合成桌面效果和引入全新的显示驱动架构戏剧化地做出了用户体验的更改,这些疑问是可以理解的。本文将简要讨论这些改变如何影响着OpenGL。
面对不断增长的行业用户在Windos Vista上发布OpenGL产品的需求, OpenGL ARB亦希望通过以下三个主要问题增强OpenGL图形算法标准与Windows Vista间的积极协作。
1) Windows Vista 是支持完全OpenGL硬件加速的;
2) OpenGL应用程序是可以从Windows Vista 改进的图形资源管理中获益的;
3) OpenGL在Windows Vista中的运行效能是完全可以匹敌其在Windows XP上的性能的。
硬件加速的OpenGL是被Windows Vista和其Windows Aero合成桌面用户体验所完全支持的-这一点同Direct3D一样。
在Windows XP和 Windows Vista中OpenGL硬件加速是以同样的方式实现的-即通过一个由图形加速卡制造商提供的可安装用户驱动包(ICD)安装实现。如未安装此OpenGL ICD,Windows XP和Windows Vista都将转为使用CPU软加速OpenGL 渲染而非使用GPU图形加速卡硬件加速。
图1展示了在Windows Vista下OpenGL和Direct3D经过何种途径完成输出渲染。首先,OpenGL或Direct3D用户模式图形驱动从应用程序中取得数据并使用图形加速卡硬件渲染数据内容的帧画面。该帧之后被提交至桌面窗体管理(DWM),DWM将使用GPU加速将该帧画面合成写入桌面。在Windows Vista中,桌面合成功能是由Windows Aero或Windows标准用户体验的DWM实现的。
DWM是Windows Vista用户体验的关键元素,其主要功能是实现多个程序输出的帧画面内容在Windows桌面上的合成并最终呈现于屏幕上。DWM自身作为一个全3D的应用程序,也是要消耗GPU内存和资源的,并将成为一项GPU的额外负担,其通常情况下将消耗10%的图形处理性能。用户应当根据自身情况权衡DWM和Windows Aero用户界面体验与其所带来的性能开销之间的利弊。一个简单的增加应用程序效能的方法是通过选择Windows经典或Windows基本用户界面风格达到禁用DWM的目的。
当运行全屏应用程序时,如全屏游戏状态,DWM是不再执行窗体合成的,因此性能将不会有丝毫下降。
<shape id="_x0000_i1025" style="WIDTH: 6in; HEIGHT: 340.5pt" o:allowoverlap="f" coordsize="21600,21600" type="#_x0000_t75"><imagedata cropright="4915f" cropleft="2425f" cropbottom="4456f" src="23.files/image003.jpg" o:title="OGL vs D3D on vista"></imagedata></shape>
图1,OpenGL, Direct3D和桌面窗体管理(DWM)的关系
新的Windows Vista窗体显示驱动模式(WDDM)提供了一个安全防火墙和Thunk Layer(其负责图形处理器硬件/内核模式图形驱动和用户模式图形驱动间的通信)来提高整体系统稳定性。这一架构不同于Windows XP,在Windows XP中OpenGL 接口控制文件(ICD)直接与GPU硬件层面对话并掌握许多底层功能,包括内存管理。
WDDM事实上提供了OpenGL应用程序一些潜在益处。例如,之前由OpenGL接口控制文件管理的图形资源,如显存,现在则交由操作系统虚拟。当多个应用程序运行时,OpenGL接口控制文件将可以为每个应用程序最大化开放材质存储空间,而资源分配和时序安排则由Windows Vista妥善处理,这将得到多程序运行时更有效的利用系统资源的结果。
一些人曾提出OpenGL在Windows Vista上的效能不及其在Windows XP中的表现,这并非事实。
这里提供一些OpenGL在Windows XP和Windows Vista上运行效能的对比数据,包括SPECviewperf 专业 OpenGL 应用基准测试,两个OpenGL 游戏基准测试,以及两个DirectX游戏基准测试。
SPECviewperf测试数据显示专业OpenGL应用程序在Windows XP和Windows Vista上的图形处理性能及其接近。SPECviewperf在一个窗口内运行,在Windows Vista下为了达到最大图形处理性能我们通过选择Windows经典配色方案关闭了DWM。
这些数据令人印象深刻,其证实WDDM是一个完全不同于Windows XP的全新显示驱动模式,而新的Windows Vista驱动尚未从Windows XP OpenGL驱动的多年调整与优化中受益。
软件开发者和图形加速卡制造商从2006年11月便进入Windows Vista的配套生产准备,Windows Vista中的图形处理性能必将伴随时间的推移和驱动的成熟继续提高。当然无论您拥有何种版本的Windows操作系统,从图形加速卡制造商处下载最新的驱动程序总是重要的-特别是在某个新操作系统的生命初期。
<shape id="_x0000_i1026" style="WIDTH: 351pt; HEIGHT: 268.5pt" coordsize="21600,21600" type="#_x0000_t75"><imagedata src="23.files/image005.wmz" o:title=""></imagedata></shape>
如果DWM通过选择Windows Aero界面被开启,系统图形处理性能将下降约10%。对于某些使用者而言这一为了取得更先进用户界面体验而付出的代价是值得的。
Doom3 (demo1) 和 Prey (move.demo) 的数据显示Windows Vista对于全屏OpenGL游戏的性能支持与Windows XP下不相上下。因为这些程序多是全屏运行的,DWM将不必工作,因此在Windows Aero下性能并没有下降。
<shape id="_x0000_i1027" style="WIDTH: 327pt; HEIGHT: 249.75pt" coordsize="21600,21600" type="#_x0000_t75"><imagedata src="23.files/image009.wmz" o:title=""></imagedata></shape>
下图显示了Direct3D游戏Half Life 2 Episode One (demo1) 和 Oblivion (Outdoor, HDR关闭) 在Windows XP和Windows Vista中的性能。这些数据在与OpenGL基准性能测试相同的硬件平台及显卡驱动版本下取得。所有测试均运行于全屏模式下。
这些数据同样显示了Windows Vista在全屏模式下的运行效能是与Windows XP相当的。同样的原因,当应用程序运行于全屏模式时,DWM是没有动作的,因此在Windows Aero下性能并没有下降。
这些结果证明Direct3D和OpenGL均是Windows Vista系统优秀的3D 应用程序接口API。
<shape id="_x0000_i1028" style="WIDTH: 326.25pt; HEIGHT: 249pt" coordsize="21600,21600" type="#_x0000_t75"><imagedata src="23.files/image015.wmz" o:title=""></imagedata></shape>
OpenGL已被完全整合入Windows Vista显示架构中,如Direct3D一样,二者均是一流的图形处理API。
同Windows XP环境一样,图形加速卡硬件销售商提供高度优化的驱动程序用以实现OpenGL硬件加速。
OpenGL 应用程序受益于Windows Vista提供的改进的资源管理。
OpenGL在Windows Vista中的表现完全可以匹敌其在Windows XP中的性能,并将伴随针对这一新操作系统日趋成熟的驱动支持迅速提高。
增强的Windows Aero用户界面将降低高强度图形处理软件大约10%的表现。但这一损失可通过选择Windows经典或Windows基本用户界面风格以及使用全屏应用程序消除。
为保证Windows Vista下的性能最大化和系统稳定性,建议用户定期检查其图形加速卡提供商是否有驱动程序升级。
由OpenGL ARB出版的第三版OpenGL Newsletter,已包含一篇NVIDIA提供给软件开发者的关于在Windows Vista中取得最大化OpenGL应用程序性能技巧的文章。详情请参见http://www.opengl.org/pipeline/article/vol003_7/ (英文)
任何关于本文的,以及OpenGL的一般问题,请联络Khronos OpenGL ARB工作组Barthold Lichtenbelt [email protected] (仅限英文),中文咨询请联络Khronos中国 Walter Wen, [email protected] 并注明“译转Barthold Lichtenbelt ”。
General overview “What is Aero”:
http://download.microsoft.com/download/5/b/9/5b97017b-e28a-4bae-ba48-174cf47d23cd/PRI017_WH06.ppt
Overview of how DX9, DX10, GDI, OpenGL and the DWM are architected under the WDDM:
http://download.microsoft.com/download/5/b/9/5b97017b-e28a-4bae-ba48-174cf47d23cd/PRI034_WH06.ppt
OpenGL ARB article with tips for ISVs developing OpenGL applications on Windows <place w:st="on">Vista</place>:
http://www.opengl.org/pipeline/article/vol003_7/
游戏测试结果基于一台配置为AMD Athlon 64 FX-62 2.8GHz,NVIDIA GeForce 7900GTX图形加速卡及版本号为Version 97.73 for Windows XP的驱动程序,以及版本号为Version 101.20 for Windows Vista的驱动程序,运行于全屏模式。SPECviewperf测试结果基于一台双核Xeon 3.0 GHz系统,配备NVIDIA Quadro FX 5500 专业图形加速卡,以及版本号为Version 91.36 for Windows XP,Version 100.72 for Windows Vista的驱动程序。
OpenGL是Silicon Graphics Inc的注册商标。SPECviewperf®是Standard Performance Evaluation Corporation, www.spec.org的注册商标。所有其他产品名称,商标,和/或公司名称所有权均属于其各自所有者,并仅用于标识用途。