如何判断 OpenGL 上下文是不是是硬件加速的?
Posted
技术标签:
【中文标题】如何判断 OpenGL 上下文是不是是硬件加速的?【英文标题】:How to tell whether an OpenGL context is hardware accelerated?如何判断 OpenGL 上下文是否是硬件加速的? 【发布时间】:2011-03-15 04:40:55 【问题描述】:我知道,如果 openGl 实现找不到合适的驱动程序,它会很高兴地退回并以软件模式渲染所有内容。它适用于图形应用程序,但不适用于计算机游戏。
我认识许多使用 Windows XP 的用户,如果用户没有为他的 GPU 安装显卡驱动程序,那么 OpenGL 将不会被硬件加速(而 DirectX 是,否则它会抛出错误)。
有没有比测量 FPS 更好(并且可能是跨平台)的方法来确定 OpenGL 是否使用硬件加速,如果它太低通知用户?
我知道像 Quake3 这样的游戏可以通过某种方式找到它...
【问题讨论】:
【参考方案1】:似乎没有直接的方法来查询 OpenGL,但有一些方法可以帮助您确定是否存在硬件加速。有关 Windows 的想法,请参阅 here。在 UNIX 环境中glxinfo | grep "direct rendering"
应该可以工作。
【讨论】:
【参考方案2】:另请参阅glGetString 和 5.040 How do I know my program is using hardware acceleration on a Wintel card?
【讨论】:
【参考方案3】:这个先前的答案表明检查用户是否只有 OpenGL 1.1 可能就足够了。
How to write an installer that checks for openGL support?
【讨论】:
这通常是不够的。例如。在 Linux 领域 Mesa3d 实现了一个兼容 OpenGL 2.1 的软件渲染器。以上是关于如何判断 OpenGL 上下文是不是是硬件加速的?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法在无头机器上使用使用硬件加速 OpenGL 的应用程序?