2012-04-27 102 views
2

我正在通过Learning Modern 3D Graphics Programming,我试图运行“hello,world!”三角形程序。不过,我得到这个错误:glXCreateContextAttribsARB未找到

[email protected]:~/Desktop/Tutorial 0.3.8/Tut 01 Hello Triangle$ ./Tut\ 01\ Main 
freeglut (./Tut 01 Main): glXCreateContextAttribsARB not found 

运行 'glxinfo' 给了我这样的:

[email protected]:~/Desktop/Tutorial 0.3.8/Tut 01 Hello Triangle$ glxinfo | grep OpenGL 
OpenGL vendor string: Tungsten Graphics, Inc 
OpenGL renderer string: Mesa DRI Intel(R) Ironlake Mobile 
OpenGL version string: 2.1 Mesa 7.11 
OpenGL shading language version string: 1.20 
OpenGL extensions: 

和 'lspci的' 命令给了我这样的:

[email protected]:~/Desktop/Tutorial 0.3.8/Tut 01 Hello Triangle$ lspci | grep "VGA" 
00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 02) 

通过一点点谷歌搜索,我猜我正在使用OpenGL 2.1时,我应该使用OpenGL 3.3的'glXCreateContextAttribsARB',虽然我不知道。有什么我可以做的吗?

+0

你怎么看GPU,你有吗?你的驱动程序建议你正在运行某种英特尔卡。 – 2012-04-27 05:26:03

回答

6

glXCreateContextAttribsARB API需要GLX 1.4,至少OpenGL 3.0(但真的是3.2)。

你的GPU驱动程序正在报告它只能OpenGL的2.1,这是用梅萨7.x版本一致最新的Mesa 8.x确实支持OpenGL 3,但您需要检查它是否可用于您的发行版,并且还支持您特定的GPU模型。底线 - 您的硬件和驱动程序可能会限制旧2.1驱动程序的型号,这意味着您无法利用“现代”方法。抱歉!

检查DRI驱动状态这里:

+0

它看起来像是由Freeglut提出的错误。是否有可以安装的旧版本的freeglut以继续使用该教程? – 2012-07-12 14:06:50

+0

@AgnelKurian我怀疑它;这个限制最终在硬件上。 – gavinb 2012-07-12 21:14:24