opengl配置问题-取消强制软件渲染
2022年6月30日大约 2 分钟
上一级页面:index-wsl
前言
安装openGL见ubuntu安装opengl
OpenGL3.3版本
see:Environment Variables — The Mesa 3D Graphics Library latest documentation
在运行阶段出现 OpenGL 版本问题
Failed to open GLFW window. If you have an Intel GPU, they are not 3.3 compatible. Try the 2.1 version of the tutorials.
WSL默认使用的是OpenGL1.4版本,可以使用一下命令看到当前使用的是什么版本的OpenGL:
glxinfo | grep "OpenGL version"
## OpenGL version string: 1.4 (4.4.0 - Build 20.19.15.4549)
这是因为较旧版本的WSL默认设置的是Indirect Rendering
,最高只能支持OpenGL1.4,和我们项目中使用的版本不一致。为了能支持更高的版本,我们需要设置:
MESA_GL_VERSION_OVERRIDE
LIBGL_ALWAYS_INDIRECT
必须设置以下环境变量才能消除错误:
export MESA_GL_VERSION_OVERRIDE=3.3
注意这里的是3.3,WSLG的D3D12支持现在并不支持opengl4,
取消间接渲染
因为我们要使用linux的opengl做开发,还有必须覆盖的一项环境变量LIBGL_ALWAYS_INDIRECT
,将其unset
:
# if set to`true`(1) , forces an indirect rendering context/connection
# 如果设置为true,强制indirect rendering 上下文/连接
unset LIBGL_ALWAYS_INDIRECT
unset LIBGL_ALWAYS_INDIRECT
后,Windows下的VcXsrv也必须取消Native opengl
这一选项,如图所示操作
- 注:如果设置
export LIBGL_ALWAYS_INDIRECT=1
,会强制indirect rendering
,这样之前之前的设置都无用了,还是不能使用最新的opengl
# if set to`true`(1) , forces an indirect rendering context/connection
# 如果设置为true,强制indirect rendering 上下文/连接
export LIBGL_ALWAYS_INDIRECT=1
不要设置强制软件渲染
如果要强制软件渲染(不调用GPU),这便于opengl的开发调试工作,但请不要永久设置,应当在启动opengl开发套件前,临时的设置环境变量
# 如果设置为`true`(1) ,则始终使用软件渲染(强制软件渲染),不要永久设置这项!!!!!!!!
# export LIBGL_ALWAYS_SOFTWARE=1