在WSL2中开启OpenGL直接渲染以及升级OpenGL

本文讲述了在WSL2 Ubuntu 20.04环境下,如何通过添加PPA并升级OpenGL来解决rviz渲染问题,从软件渲染提升到硬件加速,最终达到4.2版本,解决了OpenGL过低导致的RVIZ显示窗口创建失败问题。

问题缘由:

在WSL2 Ubuntu20.04中使用sudo add-apt-repository ppa:kisak/kisak-mesa sudo apt update && sudo apt upgrade更新OpenGL,更新前后OpenGL依然是1.4版本:OpenGL version string: 1.4 (2.1 Mesa 10.5.4),而最新版的OpenGL实际可以达到4.2版本:OpenGL version string: 4.2 (Compatibility Profile) Mesa 22.1.1 - kisak-mesa PPA

最原始的问题是在ROS2中运行rviz出现下面的错误:

[ERROR] [1654302833.739499814] [rviz2]: rviz::RenderSystem: error creating render window: InvalidParametersException: Window with name 'OgreWindow(0)' already exists in GLRenderSystem::_createRenderWindow at /tmp/binarydeb/ros-foxy-rviz-ogre-vendor-8.2.6/obj-x86_64-linux-gnu/ogre-v1.12.1-prefix/src/ogre-v1.12.1/RenderSystems/GL/src/OgreGLRenderSystem.cpp (line 1061)
[ERROR] [1654302833.739520104] [rviz2]: Unable to create the rendering window after 100 tries

经了解,这个问题产生的原因是OpenGL版本太低,使用glxinfo -B查看显示OpenGL版本为1.4

问题梳理及解决:

OpenGL有四种不同的渲染方式,分别是直接软件渲染、直接硬件渲染、间接软件渲染、间接硬件渲染。其中直接硬件渲染方式的效率最高,其次是间接硬件渲染,这部分的内容可以参阅How to tell whether your setup is good,里面简要的介绍了这四种方式的好坏。

现在打开WSL2 Ubuntu终端,输入glxinfo -B,这条命令会告诉你关于OpenGL的相关信息,我电脑上最初的输出如下:

name of display: localhost:10.0
display: localhost:10  screen: 0
direct rendering: No (LIBGL_ALWAYS_INDIRECT set)
OpenGL vendor string: Mesa Project
OpenGL renderer string: Software Rasterizer
OpenGL version string: 
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值