我们尝试在远程Ubuntu服务器上使用Nvidia GPU和驱动程序运行glxinfo
和glxgears
,同时通过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连接到特定的显示器?谢谢!
2条答案
按热度按时间ggazkfy81#
在XQuartz中
$ xhost + $ ssh -Y用户名@服务器
必须在服务器上安装扩展验证
unftdfkk2#
您可以在两台计算机上安装virtualGL。然后使用
以获得更快的渲染。