KDE SC 4.5.0 有一些视频卡的问题,包括我的。发布后Arch 推荐了几种解决方法。其中之一是
在启动 KDE 之前导出“LIBGL_ALWAYS_INDIRECT=1”
我决定这是最简单、最好的方法。但我不知道它做什么或它如何影响我的系统。它比默认值慢吗?我应该记得密切关注问题并在问题解决后将其禁用吗?
我对通过 SSH 转发 X11 会话感兴趣,以便启动一个利用 OpenGL 的远程进程(特别是对于任何熟悉的人来说都是凉亭。)
我似乎遇到的问题是由于显卡不匹配导致凉亭崩溃;它找不到“NV-GLX”扩展名。确切的错误输出:
Xlib: extension "NV-GLX" missing on display "localhost:10.0".
Xlib: extension "NV-GLX" missing on display "localhost:10.0".
X Error of failed request: GLXUnsupportedPrivateRequest
Major opcode of failed request: 149 (GLX)
Minor opcode of failed request: 16 (X_GLXVendorPrivate)
Serial number of failed request: 24
Current serial number in output stream: 25
Run Code Online (Sandbox Code Playgroud)
远程机器使用 NVIDIA 卡运行,而我的本地机器使用 AMD 卡。
我已经在两台带有 NVIDIA 卡的机器之间测试了 Gazebo 的 X11 转发。它工作得很好。
据我所知,似乎发生了三件事之一:
远程机器运行 Ubuntu,我的本地机器是运行 10.8.2 的 Mac;我已经知道我已经为正常使用正确设置了 x11 …
我有一个安装了以下软件包的 Ubuntu 14.04 系统:
libegl1-mesa:amd64
libegl1-mesa-drivers:amd64
libgl1-mesa-dri:amd64
libgl1-mesa-dri:i386
libgl1-mesa-glx:amd64
libgl1-mesa-glx:i386
libglapi-mesa:amd64
libglapi-mesa:i386
libgles2-mesa:amd64
libglu1-mesa:amd64
libopenvg1-mesa:amd64
libwayland-egl1-mesa:amd64
mesa-utils
xvfb
Run Code Online (Sandbox Code Playgroud)
我想在 xvfb 下启动一个应用程序。我首先使用以下命令启动 xvfb:
$ Xvfb :1 -screen 0 1024x768x24 +extension GLX +render -noreset >> xsession.log 2>&1 &
Run Code Online (Sandbox Code Playgroud)
然后检查 xvfb 日志文件:
Initializing built-in extension Generic Event Extension
Initializing built-in extension SHAPE
Initializing built-in extension MIT-SHM
Initializing built-in extension XInputExtension
Initializing built-in extension XTEST
Initializing built-in extension BIG-REQUESTS
Initializing built-in extension SYNC
Initializing built-in extension XKEYBOARD
Initializing built-in extension XC-MISC
Initializing built-in extension …Run Code Online (Sandbox Code Playgroud) 我正在尝试在远程服务器上运行一个可执行文件,我通过 ssh -Y 连接到该服务器。我认为可执行文件使用 openGL
服务器运行 Ubuntu,本地系统运行 OSX。
ssh -Y 通常通过 X11 在我的本地机器上打开一个显示。这适用于其他应用程序(firefox、matlab 等)
这次我收到消息:
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
X Error of failed request: GLXBadContext
Major opcode of failed request: 149 (GLX)
Minor opcode of failed request: 6 (X_GLXIsDirect)
Serial number of failed request: 35
Current serial number in output stream: 34
X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed …Run Code Online (Sandbox Code Playgroud) 我想在当前 Intel iGPU(在 Ubuntu 16.04.2 HWE,Xorg 服务器版本 1.18.4)上的 Xorg 服务器上创建一个虚拟的虚拟输出。它类似于 Linux Mint 18.2,其中一个xrandr输出显示如下:
Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
...
eDP1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
...
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
...
Run Code Online (Sandbox Code Playgroud)
在 Linux Mint 18.2 中,我可以关闭内置显示器 ( eDP1) 并VIRTUAL1使用 X 服务器支持的任意模式打开显示器,连接x11vnc到我的主显示器,我将获得 GPU 加速的远程桌面。
但在 Ubuntu 16.04.2 中,情况并非如此。该VIRTUAL*显示器完全不存在距离 …
我有一台性能较弱的 PC(客户端),但具有可接受的 3D 性能,还有一台强大的 PC(服务器),它应该能够两次使用 OpenGL 运行应用程序,即一次在本地运行,一次用于客户端远程运行。目前,我ssh -X进入了它,但客户端的控制台输出状态使用了软件渲染,并且我每秒只能获得 3 帧 (fps)。实际上,ssh 的加密不是必需的,因为这是在 LAN 上,但这是我已经知道的远程应用程序......
那么,如何提高客户端性能呢?我的想法是
我知道,在全分辨率和没有复杂压缩的情况下,100 Mbit/s LAN 不会产生更多的 fps,但它是 ca. 800x450,因此理论上使用未压缩的图形数据应该可以达到 12 fps(24 位/像素)。也许使用客户自己的 GPU 或一些智能压缩可能会更好。
——
编辑结果我想要的基本上是本地版本,例如onlive和gaikai提供的内容。Linux(可能是免费的)有这样的东西吗?
——
edit2 VirtualGL 看起来是最好的解决方案(虽然目前对我不起作用),但我想知道是否也可以在客户端上进行硬件渲染
xvfb 应该让我在无头环境中运行 X 程序。但是当我运行时xvfb-run glxgears,我得到:
libGL error: failed to load driver: swrast
libGL error: Try again with LIBGL_DEBUG=verbose for more details.
Error: couldn't get an RGB, Double-buffered visual
Run Code Online (Sandbox Code Playgroud)
当我运行时LIBGL_DEBUG=verbose xvfb-run glxgears,我得到:
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/tls/swrast_dri.so
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so
libGL error: failed to load driver: swrast
Error: couldn't get an RGB, Double-buffered visual
Run Code Online (Sandbox Code Playgroud)
我正在运行带有 Intel Ivy Bridge 集成显卡的 Lubuntu 13.10 x64。libgl1-mesa-dri 已安装且 /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so 存在。以 root 身份运行无济于事。
怎么了?
我想尝试最基本的OpenGL驱动程序,以找出我的X服务器与OpenGL的问题。
然后我想让 X 使用软件渲染来渲染 OpenGL,就像 Windows 在opengl.dll没有安装驱动程序的情况下所做的那样。
我怎样才能做到这一点?搜索时没有找到任何东西X OpenGL software rendering。我很乐意提供参考,以及我必须使用的关键字才能找出如何做到这一点。
我Xorg在 RHEL 5.3 中使用。
(后续如何通过远程连接高效使用 3D?)
我在服务器上安装了 amd64 包,在客户端安装了 i386 包。按照用户指南,我在客户端上运行:
me@client> /opt/VirtualGL/bin/vglconnect me@server
me@server> /opt/VirtualGL/bin/vglrun glxgears
Run Code Online (Sandbox Code Playgroud)
这会导致段错误,vglconnect -s用于 ssh 隧道也不起作用。我也尝试了TurboVNC 方法,在那里开始vglrun glxgears工作,但我更喜欢使用 jpeg 压缩只传输应用程序窗口。问题是 32 <-> 64 位吗?或者我该如何解决问题?
当我运行glxgears时,出现以下错误。
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
Error: couldn't get an RGB, Double-buffered visual
Run Code Online (Sandbox Code Playgroud)
我的系统是 ubuntu 16.04 作为 docker 镜像 -nvidia/cuda:8.0-runtime-ubuntu16.04。
该映像包含 VirtualGL 和 TurboVNC,其启动参数如下:
docker run --runtime=nvidia --privileged -d -v /tmp/.X11-unix/X0:/tmp/.X11-unix/X0 -e USE_DISPLAY="7" my_image
如果我将基础图像更改为没有问题nvidia/cuda:10.2-runtime-ubuntu18.04。但该容器所属的应用程序需要 CUDA 8。
我找到了一些删除库的建议:sudo rm /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1。但这不起作用。
Ubuntu 16.04、CUDA 8:
user@host:/opt/noVNC$ sudo ldconfig -p | grep -i libGL.so
libGL.so.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
libGL.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGL.so
libGL.so (libc6,x86-64) => …Run Code Online (Sandbox Code Playgroud)