Die GLX-Erweiterung funktioniert nicht richtig mit xvfb

Die GLX-Erweiterung funktioniert nicht richtig mit xvfb

Ich habe ein Ubuntu 14.04-System mit den folgenden installierten Paketen:

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

Ich möchte eine Anwendung unter xvfb starten. Ich starte xvfb zunächst mit:

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

und überprüfen Sie dann die xvfb-Protokolldatei:

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

die keine Fehler anzeigt. Außerdem scheint GLX richtig geladen worden zu sein. Wenn ich jetzt den Server überprüfe mit

$ glxinfo -display :1

Ich bekomme

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".
...

Tatsächlich startet die Anwendung, die ich auf diesem Server starten möchte und die GLX benötigt, nicht.

Nachdem ich mehrere Dokumentationsseiten und Foren überprüft habe, habe ich keine Ahnung, was hier schief läuft. Warum zeigt die X-Server-Protokolldatei keine Fehler an, wenn die GLX-Erweiterung nicht korrekt geladen wurde? Gibt es etwas, das ich überprüfen sollte?

Antwort1

Xvfb (X Virtual Frame Buffer) ist ein virtueller Xsever, der keine echte Hardwarebeschleunigung unterstützt.

Sie müssen OpenGL-Aufrufe spawnen, mit virtuellesGL, verzweigen Sie die echten Aufrufe über einen echten 3D-Xserver und 2D-Rendering zu Xvfb oder einem anderen 2D-Xserver.

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

Antwort2

in meinen Logdateien sehe ich, dass alles in Ordnung ist bis zur Initialisierung der integrierten Erweiterung GLX, aber dann folgt

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

liegt das Hauptproblem möglicherweise bei xkbcomp?

Antwort3

Im WikiSeitevon Xvfb heißt es: „Im Gegensatz zu einem echten Display-Server unterstützt Xvfb keine modernen X11-Erweiterungen wie Compositing, Randr oder GLX. Xdummy ist eine neuere Alternative, die diese Erweiterungen unterstützt und die gleiche Funktionalität wie Xvfb bietet.“

verwandte Informationen