web-dev-qa-db-ja.com

Xvfb + glxgearsが失敗する

Xvfbを使用しようとしていますが、なんらかの理由でglxgearsを実行することもできず、デバッグ方法がわかりません。何かが足りない可能性があります。私が使用しているコマンドは次のとおりです。

Xvfb :99 +extension GLX -screen 0 640x480x24
DISPLAY=:99 glxgears

また、glxgearsは次のエラーメッセージで失敗します。

X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  151 (GLX)
  Minor opcode of failed request:  3 (X_GLXCreateContext)
  Value in failed request:  0x0
  Serial number of failed request:  23
  Current serial number in output stream:  24

編集:私はちょうど友人に同じコマンドを実行するように頼みました、そしてそれは彼のPCで動作しましたが、何らかの理由で私のものでは動作しませんでした。 Xをデバッグする方法はありますか?

5
nullifiedcat

クライアント(glxinfo)とサーバー(xvfb)の両方にmesa(swrastエンジン付き)libglを使用する必要があります。

NVIDIAとmesaの両方がインストールされているDebian 9の場合:

# LD_LIBRARY_PATH=/usr/lib/mesa-diverted/x86_64-linux-gnu Xvfb :99 +extension GLX -screen 0 640x480x24 & 
[1] 16936
# LD_LIBRARY_PATH=/usr/lib/mesa-diverted/x86_64-linux-gnu DISPLAY=:99 glxgears
6374 frames in 5.0 seconds = 1274.743 FPS 
^C

Nvidiaカードをお持ちでない場合は、nvidiaドライバーをアンインストールしてください。デフォルトでmesaを使用し、nvidiaをインストールしたままにする場合は、glx-diversionsを使用できます。

2
Hmlth

ヘッドレスサーバーでOpenGLを使用しようとしてこの質問に到達した場合:NVIDIA GLXドライバーがインストールされているが、実際にはサーバーにNVIDIAカードがない場合(たとえば、AWS Deep Learning Base AMIを使用している場合)にこのメッセージが表示されることがありますGPUのないマシン)。

確認するには、+iglxglxinfoの実行を許可する必要があります)を使用してXサーバーを実行し、glxinfo出力(例xvfb-run -s '-screen 0 1400x900x24 +iglx' glxinfo)がclient glx vendor string: NVIDIA Corporation。もしそうなら、NVIDIAのもの​​なしでAMIに切り替えてみてください。

2
Matthew Rahtz