如何判断 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 上下文是不是是硬件加速的?的主要内容,如果未能解决你的问题,请参考以下文章

检测窗口是不是正在使用硬件加速的图形上下文

什么时候使用 Qt 在 opengl 中创建渲染上下文?

有没有办法在无头机器上使用使用硬件加速 OpenGL 的应用程序?

使用 OpenGL v1.4 进行硬件加速的 Qt 2D 绘图?

如何在 SDL 中进行硬件加速 Alpha 混合?

两种方法在Qt中使用OpenGL库加载stl三维模型