【问题标题】:OpenGL Render Locally and view over SSHOpenGL 本地渲染并通过 SSH 查看
【发布时间】:2017-08-31 17:17:57
【问题描述】:

我需要渲染一个 OpenGL 屏幕并通过 SSH 传递渲染。 GLX 命令将不起作用,因为远程计算机没有必要的扩展。

如果没有远程计算机的 root 访问权限,我无法使用 VGL 之类的解决方案。还有其他远程查看渲染的场景吗?

VNC 无法在系统上运行,我无法安装任何需要 root 访问权限的软件。

【问题讨论】:

  • VNC,但它会很慢。如果没有 GLX,我非常怀疑是否有一个好的解决方案可用。
  • 是的,即使是 VNC 也无法在系统上运行。

标签: opengl ssh


【解决方案1】:

如果您可以启动 X 服务器,您可能会使用Xpra 获得一些运气。 Xpra 是一个特殊的窗口管理器,它使用 Composite 扩展来获取每个窗口;然后它将窗口的内容包装在一种有效的编码中,以供 Xpra 客户端查看。

Xpra 本身是用 Python 编写的,带有一点 C 胶水代码,也可以安装在用户的主目录中。您可以在 xpra 服务器端指定 X 服务器和要与 --xvfb 选项一起使用的命令行。虽然它被命名为 xvfb,但任何 X 服务器都可以。

请注意,对于 Linux 上当前的 OpenGL 和图形驱动程序模型,一次只能有一个 X 服务器可以容纳 GPU。因此,您不能同时在 GPU 上启动多个 Xpra 实例。此外,如果已经有另一个 GPU 用户,您也不能使用它。希望通过屏幕外硬件加速 EGL 支持,这种限制很快就会消失。

同时使用 Xpra 是我个人首选的远程高性能 OpenGL 渲染。

【讨论】:

  • 我认为这是正确的做法。我无法远程启动 XServer,因为这是一台公共实验室机器,我没有管理员权限。可能有另一个人在本地使用这台机器,所以我不能真正接触 XServer。我真的不需要有效地做到这一点,我只需要查看正在发生的事情来验证行为而无需访问 VNC。
  • @jscott 你不需要管理员权限来启动 xpra 使用的 Xvfb X11 服务器。这对其他本地用户没有任何影响。
  • @jscott:totaam 是对的。然后,您可以使用 Xvfb 代替 Xserver。您的系统可能在某处安装了 Mesa,因此即使常规 Xserver 使用专有驱动程序,您也可以 LD_PRELOAD Mesa 的 libGL.so 以提供 Xvfb 会话软件光栅化 OpenGL 功能中的所有内容。
  • @datenwolf “另外,如果已经有其他 GPU 用户,您也可以使用它。”你的意思是可以还是不能?
  • @Tsathoggua:不错的收获。它是 "(...) 不能 (...)"。我编辑了答案。
猜你喜欢
  • 2011-05-24
  • 2015-05-10
  • 1970-01-01
  • 2020-02-11
  • 1970-01-01
  • 2018-01-22
  • 1970-01-01
  • 2014-04-10
  • 1970-01-01
相关资源
最近更新 更多