我在设置笔记本电脑以进行OpenGL编程/运行OpenGL程序时遇到了很多问题/困惑。
我的笔记本电脑有一个非常聪明(对我来说太聪明了)的设计,英特尔CPU有一个片上图形处理器,还有一个专用显卡。具体来说,CPU是3630QM,带有"HD Graphics 4000"(我相信这是一个非常令人兴奋的名字),"合适的"图形处理器是Nvidia GTX 670MAX。
理论上,根据维基百科的说法,如果安装了正确的驱动程序,Linux下的高清图形芯片(英特尔)支持OpenGL 3.1。(他们可能不是。)
根据NVIDIA的说法,670MAX可以支持OpenGL 4.1,所以理想情况下我想在这个GPU上开发和执行。
我是否安装了驱动程序,使我能够在NVIDIA GPU上执行OpenGL 4.1代码?答:可能没有,目前我使用这个"optirun"的东西在专用GPU上执行OpenGL程序。请参阅此链接,查看我安装计算机时遵循的过程。
我的问题是,我知道如何在670MAX上运行编译程序;那将是"optirun"/programname",但我如何才能知道我的系统上安装的图形驱动程序将支持哪个OpenGL版本?在终端中运行"glxinfo|grep-iOpenGL"告诉我英特尔芯片支持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,这是我所期望的。然而,在optrun下,支持的OpenGL版本是"4.3.0 NVIDIA 313.30",所以版本是4.3?!如果NVIDIA的硬件规范只支持4.1版,那么它怎么会是4.3版呢?
您可以在optirun:下运行glxinfo
optirun glxinfo | grep -i opengl
这两个卡都有不同的功能,所以获得不同的OpenGL版本是正常的。