GLX 拡張機能が xvfb で正しく動作しない

GLX 拡張機能が xvfb で正しく動作しない

次のパッケージがインストールされた Ubuntu 14.04 システムがあります。

libegl1-mesa:amd64
libegl1-mesa-drivers:amd64
libgl1-mesa-dri:amd64
libgl1-mesa-dri:i386
libgl1-mesa-glx:amd64
libgl1-mesa-glx:i386
libglapi-mesa:amd64
libglapi-mesa:i386
libgles2-mesa:amd64
libglu1-mesa:amd64
libopenvg1-mesa:amd64
libwayland-egl1-mesa:amd64
mesa-utils
xvfb

xvfb でアプリケーションを起動したいです。まず、次のコマンドで xvfb を起動します。

$ Xvfb :1 -screen 0 1024x768x24 +extension GLX +render -noreset >> xsession.log 2>&1 &

次に、xvfb ログ ファイルを確認します。

Initializing built-in extension Generic Event Extension
Initializing built-in extension SHAPE
Initializing built-in extension MIT-SHM
Initializing built-in extension XInputExtension
Initializing built-in extension XTEST
Initializing built-in extension BIG-REQUESTS
Initializing built-in extension SYNC
Initializing built-in extension XKEYBOARD
Initializing built-in extension XC-MISC
Initializing built-in extension SECURITY
Initializing built-in extension XINERAMA
Initializing built-in extension XFIXES
Initializing built-in extension RENDER
Initializing built-in extension RANDR
Initializing built-in extension COMPOSITE
Initializing built-in extension DAMAGE
Initializing built-in extension MIT-SCREEN-SAVER
Initializing built-in extension DOUBLE-BUFFER
Initializing built-in extension RECORD
Initializing built-in extension DPMS
Initializing built-in extension Present
Initializing built-in extension DRI3
Initializing built-in extension X-Resource
Initializing built-in extension XVideo
Initializing built-in extension XVideo-MotionCompensation
Initializing built-in extension SELinux
Initializing built-in extension GLX

エラーは表示されません。また、GLXは適切にロードされているようです。さて、サーバーをチェックすると

$ glxinfo -display :1

私は

name of display: :1
Xlib:  extension "GLX" missing on display ":1".
...
Error: couldn't find RGB GLX visual or fbconfig
Xlib:  extension "GLX" missing on display ":1".
...
Error: couldn't find RGB GLX visual or fbconfig

Xlib:  extension "GLX" missing on display ":1".
...

実際、このサーバーで起動したい GLX を必要とするアプリケーションは起動しません。

いくつかのドキュメント ページとフォーラムを確認しましたが、何が問題なのかわかりません。GLX 拡張機能が正しくロードされていない場合、X サーバー ログ ファイルにエラーが表示されないのはなぜですか? 確認すべき点はありますか?

答え1

Xvfb (X 仮想フレーム バッファー) は、実際のハードウェア アクセラレーションをサポートしない Xsever 仮想です。

OpenGL呼び出しを生成する必要があります。 仮想GL実際の呼び出しを実際の 3D Xserver 経由でフォークし、2D レンダリングを Xvfb または別の 2D Xserver に実行します。

$ Xvfb :1 -screen 0 1024x768x24 +extension GLX +render -noreset >> xsession.log 2>&1 &
$ env DISPLAY=:1 vglrun glxinfo 

答え2

私のログファイルでは、組み込み拡張GLXの初期化まではすべて正常ですが、その後に

The XKEYBOARD keymap compiler (xkbcomp) reports:
> Internal error:   Could not resolve keysym XF86AudioMicMute
Errors from xkbcomp are not fatal to the X server

おそらく重要な問題は xkbcomp にあるのでしょうか?

答え3

ウィキペディアページXvfb の説明には、「実際のディスプレイ サーバーとは異なり、Xvfb は合成、Randr、GLX などの最新の X11 拡張機能をサポートしていません。Xdummy は、これらの拡張機能をサポートし、Xvfb と同じ機能を提供する新しい代替手段です。」と書かれています。

関連情報