图形驱动程序不支持OpenGL版本2.1,可能需要更新

问题描述 投票:0回答:1

我正在使用mayavi在具有GPU的远程服务器上执行一些可视化任务。当我的代码运行mlab.show()时,发生以下错误

qt.glx: qglx_findConfig: Failed to finding matching FBConfig (8 8 8 0)
...
qt.glx: qglx_findConfig: Failed to finding matching FBConfig (1 1 1 0)

ERROR: In /work/standalone-x64-build/VTK-source/Rendering/OpenGL2/vtkOpenGLRenderWindow.cxx, line 797
vtkXOpenGLRenderWindow (0x559c336fd4e0): GL version 2.1 with the gpu_shader4 extension is not supported by your graphics driver but is required for the new OpenGL rendering backend. Please update your OpenGL driver. If you are using Mesa please make sure you have version 10.6.5 or later and make sure your driver in Mesa supports OpenGL 3.2.

我正在使用Ubuntu16.04,这是有关远程服务器的一些信息。

(base) zz@SYS-4028GR-TR:~$ glxinfo | grep OpenGL
OpenGL vendor string: Mesa project: www.mesa3d.org
OpenGL renderer string: Mesa GLX Indirect
OpenGL version string: 1.3 Mesa 4.0.4
OpenGL extensions:

(base) zz@SYS-4028GR-TR:~$ glxinfo | grep render
direct rendering: No (If you want to find out why, try setting LIBGL_DEBUG=verbose)
    GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer, 
OpenGL renderer string: Mesa GLX Indirect

有人对此情况有任何想法吗?我尝试找到一些在Ubuntu中更新Mesa的方法,但失败了。如果有任何方法可以解决此类问题,那将非常有帮助。

opengl gpu ubuntu-16.04 remote-server mesa
1个回答
0
投票

我正在使用mayavi通过GPU在远程服务器上执行一些可视化任务。

“远程服务器”,这就是您的问题。如果通过SSH转发X11连接登录,则所有OpenGL命令都将序列化为GLX命令,并通过X11连接通过网络通过隧道传输到计算机,以在本地图形系统上执行。

如果远程系统上有GPU,那么最近最好的选择是使用Xpra,进行配置,使其在GPU上启动其后备X服务器,而不是在虚拟帧缓冲设备上启动。

这归结为安装常规Xorg服务器。修改/etc/X11/Xwrapper以允许普通用户启动。然后,您可以使用命令行将Xpra作为第一个客户端来启动X服务器。

startx /usr/bin/Xpra start :100 --use-display --daemon=no -- :100

如果您不想修复显示,则创建一个可执行文件/usr/local/bin/xpra_display

#!/bin/sh
exec xpra start $DISPLAY --use-display --daemon=no

然后可以使用它启动

startx /usr/local/bin/xpra_display

无其他论点

© www.soinside.com 2019 - 2024. All rights reserved.