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


15

次のパッケージがインストールされた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サーバーのログファイルにエラーが表示されないのはなぜですか?確認する必要があるものはありますか?


Xvfbのwikiページ[1]では、次のように述べています。 」[1] en.wikipedia.org/wiki/Xvfb
alpert 14年

@alpertekを回答として投稿してください。GLXを使用するには、通常、チップ固有のドライバーが必要です。
-XTL

3
上記のコメントは正しくありません。OpenSCADテストスイートでXvfbのGLXを数年間使用しました。bugzilla.redhat.com/show_bug.cgi?id=904851
明るくない

さて、その間、wikiのコメントは削除されました。en.wikipedia.org/w/...
ウラジミール・Čunát

回答:


2

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

virtualGLを使用してopenGL呼び出しを生成し、実際の3D Xserverを介して実際の呼び出しをフォークし、Xvfbまたは別の2D Xserverに2Dレンダリングする必要があります 。

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

実際のハードウェアアクセラレーションはサポートしていませんが、Mesa(ソフトウェアGLX)は問題なくサポートしています-少し前に確認しました(まだ2018年)。したがって、もちろんオプションですが、実際の3D Xserverを使用する必要ありません。
-dirkt

1

Xvfbのwiki ページでは、「実際のディスプレイサーバーとは異なり、Xvfbは合成、Randr、GLXなどの最新のX11拡張をサポートしていません。Xdummyはこれらの拡張をサポートし、Xvfbと同じ機能を提供する新しい選択肢です」


詳細についてXdummy -hは、使用してください(Arch Linuxのx11vnc 0.9.13-6にはマンページがありません)。
レーケンシュタイン

7
この答えは正しくありません。ヘッドレスOpenSCADテストスイートのLinuxで数年間XvfbでGLXを使用しました。bugzilla.redhat.com/show_bug.cgi?id=904851 以降、wikiは更新され、その行は削除されました。
明るくしない

0

私のログファイルでは、組み込み拡張機能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にありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.