在 Linux 上使用 MIT-SHM X11 扩展

在 Linux 上使用 MIT-SHM X11 扩展

我试图让 Blender 完成一个设置,其中 Blender 本身在远程计算机上运行,​​并且其 UI 通过 X11 呈现给本地计算机。

有关详细信息,请参阅这里

这似乎是一个经常需要的用例,Blender 本身可以通过blender-softwareglzip 存档下载选项中提供的可执行文件来工作搅拌机网站但仅限于 2.79 版本。

在版本 2.80 上,相同的可执行文件似乎正在尝试设置需要 MIT-SHM X11 扩展的共享内存“对象”。

具体来说,Blender 的可执行文件(在远程机器终端中)抱怨:error code: 159request code: 143minor code: 34error text: 159最后以:

Xlib:显示“localhost:10.0”上缺少扩展名“MIT-SHM”。

此后,本地计算机上的 X11 窗口保持打开状态,就好像软件运行没有问题,但不显示 Blender 的 GUI。

同时,当鼠标沿着本地X11窗口拖动时,远程终端仍然会产生XLib: extension "MIT-SHM"...错误。

我试图找到有关使用 MIT-SHM 的更多信息(安装、配置、启用/禁用等),但除了,这个传递的参考我运气不太好。

虽然我还在研究这个问题,但我很感激任何人对 MIT-SHM 的帮助,因为我怀疑 Blender 并不是唯一可能使用它的软件。这似乎是一个很酷的 X11 功能,但我不认为我可以在我的设置服务器上运行的 Ubuntu Bionic 18.04 上完全控制它。

  1. 如何启用 MIT-SHM 以便它显示在xdpyinfo列表中?
  2. 我是否应该安装一组特定的库才能使其完全正常工作?
  3. 它的使用还暗示着什么吗? (例如,我是否需要启用任何额外端口才能使此功能正常工作?)

答案1

您无法从远程 X11 客户端使用 MIT-SHM。

想想它的缩写:SHM = 共享内存。如果客户端和服务器运行在不同的机器上,那就不能共享内存。

该扩展旨在加速 X11 请求,这些请求通过使用 SySV 共享内存 API 传输大量数据,而不是通过套接字写入数据(例如XPutImage-> XShmPutImage)。恕我直言,它对现代计算机的好处是有争议的。

相关内容