远程X服务器在通过'ssh -X`启动时使用不同的OpenGL渲染器,而通过远程端'/usr/bin/X '启动时使用不同的OpenGL渲染器-为什么?

aiqt4smr  于 2022-11-04  发布在  其他
关注(0)|答案(2)|浏览(258)

我们尝试在远程Ubuntu服务器上使用Nvidia GPU和驱动程序运行glxinfoglxgears,同时通过XQuartz将显示转发到本地Mac。
我们注意到OpenGL使用了不同的渲染器(专用GPU与板载显卡),具体取决于远程X服务器是通过Mac上的ssh -X启动,还是通过远程per this tutorial内部的sudo /usr/bin/X启动。

案例1

如果我们在服务器上执行sudo /usr/bin/X :0 &DISPLAY=:0 glxinfo |grep -i OpenGL,OpenGL渲染器将指向NVIDIA GPU,这正是我们想要的:
OpenGL ES profile version string: OpenGL ES 3.2 NVIDIA 418.67
但是DISPLAY=:0 glxgears显然在名为 Display 0 的远程X服务器上呈现glxgears,这与我们从Mac运行ssh -X时启动的远程X服务器不同(根据案例2)。
这意味着我们无法看到转发的输出,因为XQuartz未连接到显示器0。

案例2

当我们从Mac通过ssh -X -i ~/.ssh/publickey ubuntu@some.ip创建显示器时(其中some.ip是远程计算机),然后运行glxinfo | grep -i OpenGL,OpenGL渲染器将指向板载图形:
OpenGL renderer string: AMD Radeon Pro 560 OpenGL Engine
我们可以在远程上运行echo $DISPLAY,并注意到该X服务器(通常)称为Display 10。
因此,运行DISPLAY=:10 glxgears,或简称glxgears,确实允许我们将齿轮转发到Mac端的XQuartz客户端,但通过远程机器的板载图形进行渲染会很慢。

**为什么X服务器在这两种情况下选择不同的OpenGL渲染器?**它们不是都通过/etc/X11/xorg.conf配置的吗?

有没有办法在运行ssh -X时强制XQuartz连接到特定的显示器?谢谢!

ggazkfy8

ggazkfy81#

在XQuartz中
$ xhost + $ ssh -Y用户名@服务器
必须在服务器上安装扩展验证

unftdfkk

unftdfkk2#

您可以在两台计算机上安装virtualGL。然后使用

vglrun glxgears

以获得更快的渲染。

相关问题