如何检查带有 optirun 的 linux 系统上支持哪个版本的 OpenGL?

Posted

技术标签:

【中文标题】如何检查带有 optirun 的 linux 系统上支持哪个版本的 OpenGL?【英文标题】:How can I check which Version of OpenGL is supported on a linux system with optirun? 【发布时间】:2013-07-17 17:25:36 【问题描述】:

我在设置笔记本电脑以进行 OpenGL 编程/运行 OpenGL 程序时遇到了很多问题/困惑。

我的笔记本电脑有一种非常聪明(对我来说太聪明了)的设计,其中英特尔 CPU 有一个芯片上的图形处理器,还有一个专用的显卡。具体来说,CPU 是 3630QM,带有“HD Graphics 4000”(我敢肯定,这是一个非常令人兴奋的名字),而“合适的”图形处理器是 Nvidia GTX 670MX。

理论上,根据Wikipedia,如果安装了正确的驱动程序,Linux 下的 HD Graphics Chip (Intel) 支持 OpenGL 3.1。 (他们可能不是。)

根据NVIDIA,670MX 可以支持 OpenGL 4.1,所以理想情况下我想在这个 GPU 上开发和执行。

我是否安装了驱动程序以使我能够在 NVIDIA GPU 上执行 OpenGL 4.1 代码?答:可能没有,目前我使用这个“optirun”东西在专用 GPU 上执行 OpenGL 程序。请参阅此link 以了解我设置计算机所遵循的过程。

我的问题是,我知道如何在 670MX 上运行已编译的程序;那将是'optirun ./programname',但我如何才能找出我系统上安装的图形驱动程序将支持的OpenGL版本?运行'glxinfo |终端中的 grep -i opengl' 告诉我英特尔芯片支持 OpenGl 3.0 版。请参阅以下信息:

ed@kubuntu1304-P151EMx:~$ glxinfo | grep -i opengl
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile 
OpenGL version string: 3.0 Mesa 9.1.3
OpenGL shading language version string: 1.30
OpenGL extensions:

我如何做相同或类似的事情来找出“optirun”下可用的支持,以及支持的 OpenGL 版本?

更新

有人建议我使用 glGetString() 来查找此信息:我现在完全糊涂了! 没有 optirun,支持的 OpenGL 版本是 '3.0 MESA 9.1.3',所以版本 3,这是我的预期。但是,在optirun下,支持的OpenGL版本是'4.3.0 NVIDIA 313.30',所以版本是4.3?!如果 NVIDIA 的硬件规范声明只支持 4.1 版,那怎么可能是 4.3 版?

【问题讨论】:

很简单,硬件规格是在仅存在 OpenGL 4.1 时制定的,并且很可能更新的驱动程序使该卡支持 OpenGL 4.3。 【参考方案1】:

你可以在 optirun 下运行 glxinfo:

optirun glxinfo | grep -i opengl

两张卡有不同的特性,所以得到不同的OpenGL版本是正常的。

【讨论】:

以上是关于如何检查带有 optirun 的 linux 系统上支持哪个版本的 OpenGL?的主要内容,如果未能解决你的问题,请参考以下文章

如何检查linux上安装lib是不是齐全

Android Studio / AVD with bumblebee / nvidia optimus

Linux系统故障-Repair filesystem

Linux中如何检查开放端口

在linux系统里,如何检查新插入的USB设备是不是被系统识别?

当LINUX文件系统受到破坏时,如何检查和修复系统?