2012-04-27 109 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