X11は、NVIDIAカードを実行しているマシンからAMDカードを搭載したマシンにOpenGLアプリケーションを転送します


15

OpenGLを使用するリモートプロセスを起動するために、SSHを介してX11セッションを転送することに興味があります(具体的には、馴染みのある人ならgazeboです)。

私が直面していると思われる問題は、グラフィックカードの不一致によりガゼボがクラッシュすることです。「NV-GLX」拡張機能が見つかりません。正確なエラー出力:

Xlib:  extension "NV-GLX" missing on display "localhost:10.0".
Xlib:  extension "NV-GLX" missing on display "localhost:10.0".
X Error of failed request:  GLXUnsupportedPrivateRequest
  Major opcode of failed request:  149 (GLX)
  Minor opcode of failed request:  16 (X_GLXVendorPrivate)
  Serial number of failed request:  24
  Current serial number in output stream:  25

リモートマシンはNVIDIAカードで実行されており、ローカルマシンはAMDカードを使用しています。

NVIDIAカードを搭載した2台のマシン間でガゼボのX11転送をテストしました。それはうまく機能します。

私が知る限り、次の3つのうちの1つが起こっているようです。

  1. 私は何か間違ったことをしている、
  2. 私がやりたいことは不可能です
  3. Gazeboは、異なるハードウェア用の分岐コードパスを使用した不可知論的な方法では構築しません。システムが構築されたときにどのように見えるかはあなたが得るものです。

リモートマシンはUbuntuを実行しており、私のローカルマシンは10.8.2を実行しているMacです。XclockのようなものをXQuartzでうまく開くことができるので、x11転送が通常の使用のために適切に設定されていることをすでに知っています。解決策(存在する場合)は、Windows over WinSCPを含む他のOSでも機能することが望ましいでしょう。

回答:


9

GLX Wikipedia記事からのいくつかのメモ:

GLX [is]クライアント(OpenGLアプリケーション)が3DレンダリングコマンドをXサーバー(ディスプレイを担当するソフトウェア)に送信できるようにするXプロトコルの拡張。クライアントソフトウェアとサーバーソフトウェアは異なるコンピューターで実行できます。

そして

クライアントとサーバーが同じコンピューターで実行されており、適切なドライバーを使用した高速3Dグラフィックスカードが利用可能な場合、前の2つのコンポーネントはDRIによってバイパスできます。この場合、クライアントアプリケーションは複数のAPIレイヤーを介してビデオハードウェアに直接アクセスできます。

最初のポイントは、これが可能かどうかについてのあなたの質問に答えると信じています。それは確かに可能であるべきです。2番目は、クライアントプログラムがローカルXサーバー(NV GLXドライバー)の機能の使用を要求する理由の説明を提供する場合があります-おそらくlocalhost:10.0同じコンピューターであると考えているため、方向接続を試みました。

試すべきこと:

  1. 代わりにgazebo、試してくださいglxdemo
  2. 可能であれば、同じネットワーク上の2台のコンピューターを取得し、写真からsshを取り出します
  3. 大きな銃:straceあなたのgazebo呼び出し、そしてそれがnv-glxをロードしている理由を理解する

幸運を!


コンピューターは既に同じネットワーク上にありますが、ある時点ですべてのガゼボマシンをサーバークローゼットに移動したいのですが、SSHトンネリングを検討しているのはソフトウェアのビジュアルを引き続き利用できるようにするためです。それらを同じネットワーク上に配置すると、SSHが不要になる別の構成が可能になると言っているのでない限り(Xhost /クライアントのクレイジーなセットアップを推測しているのですが、X11についてはあまり知りません)。
ダグスティーブン

SSHを使用する必要はありません-高信頼性システムのこのすべてのプライベートネットワークは、しようとした場合xhost +、ローカルマシン上と「リモートシステム上のDISPLAYを設定したIP-または名・オブ・ローカル:0`
ckhan

1
私はgazebo仕事に着くことができませんでしたが、あなたの提案が技術的に正しいため、これを受け入れられた答えとしてマークしています。私はglxdemoあなたがしたすべての提案(ネットワーク上のsshとxserver / xclient)を使用してトンネルすることができますが、Gazebo自体は分岐コードパスを構築していないようであり、それはこの奇妙な構成で実行されていないことを前提としています ありがとう!。
ダグスティーヴン

ガゼボウェブがあり、それは本当に素晴らしいです。リモートマシン(WANを含む)でガゼボサーバーを起動し、sshでトンネルし、ブラウザを開いてそこにガゼボを表示できます。史上最高のソリューション。
メフディ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.