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

时间:2013-07-18 16:20:05

标签: opengl optimus

我有很多问题/困惑,设置我的笔记本电脑用于OpenGL编程/ OpenGL程序的运行。

我的笔记本电脑有一个非常聪明(对我来说太聪明)的设计,英特尔CPU在芯片上有一个图形处理器,还有一个专用的显卡。具体来说,CPU是3630QM,带有“HD Graphics 4000”(一个非常令人兴奋的名字,我相信),“正确”的图形处理器是Nvidia GTX 670MX。

理论上,根据Wikipedia,如果安装了正确的驱动程序,Linux下的HD图形芯片(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'告诉我Intel芯片支持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?

1 个答案:

答案 0 :(得分:6)

你可以在optirun下运行glxinfo:

optirun glxinfo | grep -i opengl

这两种卡都有不同的功能,因此可以获得不同的OpenGL版本。