GLX (OpenGL) のリモート ダイレクト レンダリング

GLX (OpenGL) のリモート ダイレクト レンダリング

SSH 経由で OpenGL 2.1+ アプリケーションを実行しようとしています。

[自分のコンピュータ] --- ssh 接続 --- [リモート マシン] (アプリケーション)

私はこのアプリケーションを実行するために X 転送を使用していますが、それを念頭に置くと、このアプリケーションで 3D グラフィックスを実行する方法はいくつかあると思います。

  1. LIBGL_ALWAYS_INDIRECTを使用すると、コンピュータのグラフィックハードウェアを使用できます。この郵便受けこれは通常、OpenGL バージョン 1.4 に制限されます。
  2. リモート マシンで Mesa ソフトウェア レンダリングを使用します。これは OpenGL の上位バージョンをサポートしますが、CPU を使用します。

しかし、私の場合、リモートマシンには十分なグラフィックカードが搭載されています。ソフトウェアレンダリングはできるのかと思っていましたハードウェア代わりにリモートでレンダリングします。

また、マシンのグラフィック カードを使用する別の方法があれば、それも素晴らしいと思います。

答え1

選択は必ずしも間接レンダリングとソフトウェア レンダリングのどちらかではなく、より正確には直接レンダリングと間接レンダリングのどちらかです。直接レンダリングは X クライアント (リモート マシン) で実行され、レンダリング結果は X サーバーに転送されて表示されます。間接レンダリングは GL コマンドを X サーバーに送信し、それらのコマンドはサーバーのハードウェアを使用してレンダリングされます。リモート マシンで 3D ハードウェアを使用する必要があるため、直接レンダリングを選択する必要があります (レンダリングされたラスター イメージをネットワーク経由で転送するオーバーヘッドを受け入れます)。

アプリケーションが OpenGL 1.4 に対応できない場合は、直接レンダリングが唯一の選択肢となります。

答え2

以前は、パッチを当てた OpenGL ドライバーを実行するために SSH リモート セットアップを使用していました。ただし、レンダリングのためにリモート X サーバーをハイジャックするなどのハッキングがいくつか必要でした (リモート マシンにログインし、SSH で接続して DISPLAY を :0 に設定)。あなたの場合は、オフスクリーン X サーバーを分離する方が合理的です。GPU ドライバーがロードされた状態で、オフスクリーン モードでリモートから X サーバーを起動できるかどうかは覚えていません。VirtualGL プロジェクトは、まさにあなたが探しているものをサポートすると約束しているようです。試したことはありませんが、Web サイトは有望に見えます。

http://www.virtualgl.org/About/Introduction

他の代替手段は vnc と xdmcp です。これらを使用すると、完全なリモート デスクトップ環境にアクセスできます。

関連情報