热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

官方讲解:OpenGL在Vista上的性能问题

OpenGL官方组织KhronosOpenGLARB工作组最近陆续收到了许多请求,希望能澄清OpenGL在WindowsVista上的性能问题。由于微软在Vista中引入了Aero

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就不再执行窗口合成,也不会再拖累性能。

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驱动程序,全屏运行。

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

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

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


推荐阅读
  • Android图形架构学习笔记(待修改)
    以下简单总结来自Android官网,稍作总结:https:source.android.google.cndevicesgraphics概览Andr ... [详细]
  • 通过Anaconda安装tensorflow,并安装运行spyder编译器的完整教程
    本文提供了一个完整的教程,介绍了如何通过Anaconda安装tensorflow,并安装运行spyder编译器。文章详细介绍了安装Anaconda、创建tensorflow环境、安装GPU版本tensorflow、安装和运行Spyder编译器以及安装OpenCV等步骤。该教程适用于Windows 8操作系统,并提供了相关的网址供参考。通过本教程,读者可以轻松地安装和配置tensorflow环境,以及运行spyder编译器进行开发。 ... [详细]
  • Window10+anaconda+python3.5.4+ tensorflow1.5+ keras(GPU版本)安装教程 ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 本文讨论了在iOS平台中的Metal框架中,对于if语句中的判断条件的限制和处理方式。作者提到了在Metal shader中,判断条件不能写得太长太复杂,否则可能导致程序停留或没有响应。作者还分享了自己的经验,建议在CPU端进行处理,以避免出现问题。 ... [详细]
  • 服务器上的操作系统有哪些,如何选择适合的操作系统?
    本文介绍了服务器上常见的操作系统,包括系统盘镜像、数据盘镜像和整机镜像的数量。同时,还介绍了共享镜像的限制和使用方法。此外,还提供了关于华为云服务的帮助中心,其中包括产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题和视频帮助等技术文档。对于裸金属服务器的远程登录,本文介绍了使用密钥对登录的方法,并提供了部分操作系统配置示例。最后,还提到了SUSE云耀云服务器的特点和快速搭建方法。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • OpenStackQ版本已经发布了一段时间了。今天,小编来总结一下OpenStackQ版本核心组件的各项主要新功能,再来汇总一下最近2年来OpenStackN、O、P、Q各版本核心 ... [详细]
  • 安装Tensorflow-GPU文档第一步:通过Anaconda安装python从这个链接https:www.anaconda.comdownload#window ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有