2017-04-07 50 views
1

我已經安裝了最新版本的MESA(17.0.3),它應該允許我使用高於3.0的OpenGL(對吧?)爲什麼MESA不讓我使用OpenGL 4.5(或者其他的3.0)?

問題:我被困在版本3.0。 (我的意思是我不知道如何讓MESA使用更高版本,或者即使可以)我知道我的電腦(Chromebook運行crouton for linux)具有OpenGL 4.5功能......但我也一無所知MESA:\。

我知道你可以使用glxinfo獲得關於OpenGL等的信息,所以這裏是我現在可以給出的最好的信息。

OpenGL vendor string: Intel Open Source Technology Center 
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 400 (Braswell) 
OpenGL core profile version string: 4.5 (Core Profile) Mesa 17.0.3 
OpenGL core profile shading language version string: 4.50 
OpenGL core profile context flags: (none) 
OpenGL core profile profile mask: core profile 
OpenGL core profile extensions: 
OpenGL version string: 3.0 Mesa 17.0.3 
OpenGL shading language version string: 1.30 
OpenGL context flags: (none) 
OpenGL extensions: 
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 17.0.3 
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10 
OpenGL ES profile extensions: 

預先感謝任何幫助表示讚賞:)

另外,對於加分,如果有人知道什麼是「核心Profile版本」是,我很想知道:)

回答

3

需要注意的是版本字符串出現了三次(我們忽略了着色語言版本字符串):

 
OpenGL core profile version string: 4.5 (Core Profile) Mesa 17.0.3 
... 
OpenGL version string: 3.0 Mesa 17.0.3 
... 
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 17.0.3 

因此,如果你創建一個核心方面,你會得到4.5。如果你創建一個非核心(兼容性)的上下文,你會得到3.0。如果你創建一個ES上下文,你會得到3.1。

所以,如果你想使用OpenGL 4.5,你必須請求一個核心上下文。兼容性上下文是默認的。有關如何創建核心上下文的信息將存儲在用於創建OpenGL上下文(GLFW,SDL或其他)的任何API的文檔中。

(非Mesa)供應商驅動程序的行爲不同,它們使最新版本可用,即使您選擇了兼容性上下文。但是,Mesa和MacOS驅動程序只會爲您提供核心上下文的更新版本。

+0

你已經用你的知識祝福我。我永遠感謝:) –

+0

非常有趣的答案。你可以用Khronos wiki或類似的鏈接來備份它嗎? –

+0

@Kyll:您可以通過查看OpenGL實現功能數據庫來找到這些信息。隨意添加一個鏈接到答案。 –

相關問題