我对通过 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 转发,因为我可以让 xclock 之类的东西在 XQuartz 中打开就好了。该解决方案(如果存在)也最好适用于其他操作系统,包括 WinSCP 上的 Windows。
ckh*_*han 10
GLX 维基百科文章中的一些注释:
GLX [是] X 协议的扩展,它允许客户端(OpenGL 应用程序)向 X 服务器(负责显示的软件)发送 3D 渲染命令。客户端和服务器软件可能运行在不同的计算机上。
和
如果客户端和服务器在同一台计算机上运行,并且可以使用使用合适驱动程序的加速 3D 图形卡,则 DRI 可以绕过前两个组件。在这种情况下,客户端应用程序可以通过多个 API 层直接访问视频硬件。
我相信第一点回答了你关于这是否可能的问题:它当然应该是可能的。第二个可能解释了为什么您的客户端程序坚持使用其本地 X 服务器(NV GLX 驱动程序)的功能——也许它认为这localhost:10.0是同一台计算机,因此尝试进行定向连接。
尝试的事情:
gazebo,尝试glxdemo。strace你的gazebo调用,并找出它为什么加载 nv-glx祝你好运!
| 归档时间: |
|
| 查看次数: |
32288 次 |
| 最近记录: |