RuntimeError: OpenGL 4.4 or later is required

先说结论:在 Win11 WSL2 上,使用 D3D12,我们即可升级到 OpenGL 4.5
基本上搜集了全网的资料,关于这个问题,一部分人可以通过apt更新解决,更多一部认为是gpu驱动和mesa版本的共同问题。我遇到的是后者。
先给出个人的电脑环境配置:Nvidia 4060ti , NVIDIA-SMI 551.61 , wsl2 , Ubuntu 22.04
🔗:https://github.com/microsoft/WSL/issues/9753

这个安装流程有点繁琐,这里给出安装mesa的全套版本安装地址:
🔗:https://archive.mesa3d.org/
🔗mesa 22.3.6:https://archive.mesa3d.org/mesa-22.3.6.tar.xz

还有一张截图:

这里简单介绍一下d3d12(博主不是做图形学的)
🔗:https://devblogs.microsoft.com/directx/directx-heart-linux/

在wsl终端输入glxinfo -B,查看当前的Mesa版本为23.2.1比OpenGL4.4所需的Mesa22.3.6版本更高(应该不是Mesa版本不够的问题)
所以采用回答二的方案。
首先,要对d3d12进行安装。
可以参考如下安装教程:
🔗:https://devblogs.microsoft.com/commandline/d3d12-gpu-video-acceleration-in-the-windows-subsystem-for-linux-now-available/
首先如下组件是已经安装的:
适用于Linux的Windows子系统(版本1.1.0或者更新版本)
安装类似于Ubuntu 22.04.1 LTS的发行版
在WSL中启用systemd
安装高于或指定版本的GPU驱动程序
关于包管理器存储库,我们采用选项二:
首先,在具有apt的发行版中,可以使用以下命令检查存储库中最新可用版本。
sudo apt-get update
apt list mesa-va-drivers -a
在 Ubuntu 22.04 及更新版本中,您可以添加这个第三方存储库,以便使用以下命令从mesa/main构建的前沿/不稳定的每日 mesa 包。
sudo add-apt-repository ppa:oibaf/graphics-drivers
sudo apt-get update && sudo apt-get upgrade
然后,在WSLg中设置视频加速。
确保安装了最新的更新 sudo apt-get update && sudo apt-get upgrade
安装vainfo(和libva依赖项) sudo apt-get install vainfo
*安装 mesa 库*(没有安装成功也不影响后续操作) sudo apt-get mesa-va-drivers
配置 libva 环境。您可能需要将其添加到~/.bashrc文件中,因为每个新的 WSL 控制台会话都需要它 export LIBVA_DRIVER_NAME=d3d12
列举当前硬件的 libva 功能 vainfo --display drm --device /dev/dri/card0
如果上述可以显示如下结果,则说明安装成功。

vainfo 实用程序将指示 已安装的libva 和 mesa版本 ,并列出硬件支持的入口点和配置文件的子集。
运行 LIBGL_ALWAYS_SOFTWARE=true glxinfo -B ,查看当前的OpenGL版本,下图解决:

我看到有这种解决方案:
把报错位置中的dr.RasterizeGLContext() 修改为dr.RasterizeCudaContext()
但不建议。一方面,因为dr.RasterizeCudaContext()也会报错(sad),另一方面,因为 修改为 cuda 渲染效果是不如 OpenGL 硬件加速光栅化渲染效果的。