如何检查带有 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?的主要内容,如果未能解决你的问题,请参考以下文章
Android Studio / AVD with bumblebee / nvidia optimus