我正在尝试使用 OpenGL 开发 C/C++ 应用程序。不幸的是,我无法访问 OpenGL 3.0 之后的任何功能。我有 Mesa 版本 18.0.5、Linux Mint 18 64 位、4.18.1 内核和英特尔集成显卡。
终端输出:
~ $ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Broadwell-U
Integrated Graphics (rev 09)
~ $ glxinfo | grep OpenGL
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) HD Graphics 5500 (Broadwell
GT2)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 18.0.5
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 18.0.5
OpenGL shading language version string: 1.30
OpenGL context flags: (none)
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.1 Mesa 18.0.5
OpenGL ES profile shading language version string: OpenGL ES GLSL ES
3.10
OpenGL ES profile extensions:
我确信我的硬件最高支持 OpenGL 4.4,因为这台机器在 MS 推送/强制更新之前是 Windows 10 机器,并且在那段时间我使用 OpenGL 4.4 和 GLSL 440 进行开发。
此外,我可以通过 JOGL 在 Java 上运行 OpenGL 4.4 程序,JOGL 将所有必需的 OpenGL 库打包在一起,似乎根本不依赖系统版本。
那么基本上,为什么 Mesa 说核心版本是 4.5,然后给出了 3.0 的版本字符串呢?(相同版本的 glGetString(GL_VERSION) 返回。)我怎样才能重新获得对 OpenGL 4.4 的访问权限?(如果不是 4.5!)