c++ - 核心配置文件与版本字符串?仅在 mesa 10.0.1 中获取 GLSL 1.3/OGL 3.0

标签 c++ opengl graphics glsl intel

理论上,mesa 10.0.1 应该支持 OpenGL 3.3,但目前我只获得 3.0 支持。

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

[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)

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

最佳答案

它就在发行说明中:

OpenGL 3.3 is only available if requested at context creation because compatibility contexts not supported.

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

因此您会得到两组版本,一组用于核心配置文件,另一组用于非核心配置文件。

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

关于c++ - 核心配置文件与版本字符串?仅在 mesa 10.0.1 中获取 GLSL 1.3/OGL 3.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20779242/

相关文章:

c++ - 初始化结构数组

C++:再次解压数据

c++ - Visual Studio "object file does not define any previously undefined symbols"

java - 网格上的纹理不渲染,只显示黑色 libgdx gl20

java - 循环 256*256*256 颜色,使得颜色逐渐变化并且相似的色调在循环的后续迭代中不会重复?

C++ deque 与 vector 和 C++ map 与 Set

当我的主循环等待 channel 滴答和传递事件时,OpenGl 似乎卡住了

c - Md2模型顶点加载问题

c++ - 带有 glMapBuffer 的 Buffer 会被分配一个比 glBufferSubData 慢的 VRAM 吗?

Java 图形无法更改字体