核心配置文件与版本字符串?在 mesa 10.0.1 中只获得 GLSL 1.3/OGL 3.0

2021-12-19 00:00:00 opengl graphics intel c++ glsl

理论上,mesa 10.0.1 应该支持 OpenGL 3.3,但目前我只得到 3.0 的支持.

In theory, mesa 10.0.1 should support OpenGL 3.3 but currently I'm only getting 3.0 support.

glxinfo 给出了一些令人困惑的结果...

glxinfo gives some confusing results...

[pdel@architect build]$ glxinfo | grep -i opengl
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Ivybridge Mobile 
OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.0.1
OpenGL core profile shading language version string: 3.30
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 3.0 Mesa 10.0.1
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:

(当前运行 Intel HD Graphics 4000)

(currently running Intel HD Graphics 4000)

谁能解释核心配置文件版本字符串"和版本字符串"之间的区别以及它们为何不同?

Can anyone explain the difference between the "core profile version string" and the "version string" and why they're different?

推荐答案

它就在发行说明中:

OpenGL 3.3 仅如果在创建上下文时请求,则可用,因为不支持兼容性上下文.

它看起来像 glxinfo 首先尝试获取支持的最高核心配置文件信息,然后返回到非核心.

It looks like glxinfo first tries to grab the highest supported core profile information and then drops back to non-core.

所以你会得到两组版本,一组用于核心配置文件,另一组用于非核心配置文件.

So you get two sets of versions, one for a core profile and another for a non-core profile.

如果您想在 Mesa 下使用 OpenGL 3.3,您必须创建一个核心配置文件.

If you want OpenGL 3.3 under Mesa you must create a core profile.

相关文章