我正在嘗試透過 SSH 運行 OpenGL 2.1+ 應用程式。
[我的電腦] --- ssh 連線 --- [遠端機器](應用程式)
我使用 X 轉發來運行此應用程序,考慮到這一點,我認為此應用程式有幾種方法來執行 3D 圖形:
- 使用LIBGL_ALWAYS_INDIRECT,我的電腦上的圖形硬體就可以使用了。根據這個帖子這通常僅限於 OpenGL 版本 1.4。
- 在遠端電腦上使用 Mesa 軟體渲染。這支援更高版本的 OpenGL,但使用 CPU。
然而,就我而言,遠端機器有一個不錯的顯示卡。所以而不是軟體渲染,我想知道它是否可以做到硬體而是遠端渲染。
另外,如果有其他方法可以使用我的機器的顯示卡,那就太好了。
答案1
選擇不一定是在間接渲染和軟體渲染之間,更準確地說是在直接渲染和間接渲染之間進行選擇。直接渲染將在X客戶端(遠端機器)上完成,然後渲染結果將傳輸到X伺服器進行顯示。間接渲染將 GL 命令傳輸到 X 伺服器,這些命令將使用伺服器的硬體進行渲染。由於您想在遠端電腦上使用 3D 硬件,因此您應該選擇直接渲染(並接受透過網路傳輸渲染的光柵圖像的開銷)。
如果您的應用程式無法使用 OpenGL 1.4,直接渲染是您唯一的選擇。
答案2
我曾經使用 ssh 遠端設定來運行修補過的 opengl 驅動程式。但這涉及一些駭客行為,例如劫持遠端 X 伺服器進行渲染(登入遠端計算機,ssh 並將 DISPLAY 設為:0)。對於您的情況,分離螢幕外 xserver 更有意義。我不記得是否可以在離螢幕模式下遠端啟動 xserver,但載入 GPU 驅動程式。 VirtualGL 專案似乎承諾它完全支持您正在尋找的東西。我還沒有嘗試過,但網站看起來很有希望。
http://www.virtualgl.org/About/Introduction
其他替代方案是 vnc 和 xdmcp。它們允許存取完整的遠端桌面環境。