L'extension GLX ne fonctionne pas correctement avec xvfb

15

J'ai un système Ubuntu 14.04 avec les packages suivants installés:

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

Je veux démarrer une application sous xvfb. Je démarre d'abord xvfb avec:

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

puis vérifiez le fichier journal 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

qui ne montre aucune erreur. En outre, il semble que GLX ait été correctement chargé. Maintenant, si je vérifie le serveur avec

$ glxinfo -display :1

Je reçois

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

En fait, l'application que je veux démarrer sur ce serveur et qui a besoin de GLX ne démarre pas.

Après avoir vérifié plusieurs pages de documentation et forums, je n'ai aucune idée de ce qui ne va pas ici. Pourquoi le fichier journal du serveur X n'affiche-t-il aucune erreur si l'extension GLX n'a ​​pas été chargée correctement? Y a-t-il quelque chose que je devrais vérifier?

Giorgio
la source
Dans la page wiki [1] de Xvfb, il est dit: "Contrairement à un vrai serveur d'affichage, Xvfb ne prend pas en charge les extensions X11 modernes comme la composition, Randr ou GLX. Xdummy est une alternative plus récente qui prend en charge ces extensions et fournit les mêmes fonctionnalités que Xvfb . " [1] en.wikipedia.org/wiki/Xvfb
alpert
@alpertek, vous devez poster cela comme réponse. GLX a généralement besoin d'un pilote spécifique à la puce pour être utile.
XTL
3
les commentaires ci-dessus ne sont pas corrects. nous avons utilisé GLX sur Xvfb pendant plusieurs années dans la suite de tests OpenSCAD. bugzilla.redhat.com/show_bug.cgi?id=904851
don bright
Eh bien, ce commentaire dans le wiki a été supprimé entre-temps. en.wikipedia.org/w/…
Vladimír Čunát

Réponses:

2

Xvfb (tampon de trame virtuel X) est un virtuel Xsever ne prenant pas en charge l'accélération matérielle réelle.

Vous devez générer des appels openGL, avec virtualGL , bifurquer les vrais appels via un vrai serveur X 3D et un rendu 2D vers Xvfb ou un autre serveur X 2D.

$ Xvfb :1 -screen 0 1024x768x24 +extension GLX +render -noreset >> xsession.log 2>&1 &
$ env DISPLAY=:1 vglrun glxinfo 
al3x609
la source
Bien qu'il ne prenne pas en charge l'accélération matérielle réelle, il prend très bien en charge Mesa (logiciel GLX) - j'ai vérifié il y a quelque temps (toujours en 2018). Vous n'avez donc pas besoin d'utiliser un vrai Xserver 3D, bien que ce soit bien sûr une option.
dirkt
1

dans mes fichiers journaux, je vois que tout va bien jusqu'à l'initialisation de l'extension intégrée GLX, mais elle est suivie de

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

peut-être que le problème clé est avec xkbcomp?

Ilya Yevlampiev
la source
1

Dans la page wiki de Xvfb, il est dit: "Contrairement à un vrai serveur d'affichage, Xvfb ne prend pas en charge les extensions X11 modernes comme la composition, Randr ou GLX. Xdummy est une alternative plus récente qui prend en charge ces extensions et fournit les mêmes fonctionnalités que Xvfb."

alpert
la source
Pour plus d'informations, utilisez Xdummy -h(il n'y a pas de page de manuel à partir de x11vnc 0.9.13-6 sur Arch Linux).
Lekensteyn
7
cette réponse n'est pas correcte. nous avons utilisé GLX sur Xvfb pendant plusieurs années sous linux pour la suite de tests OpenSCAD sans tête. bugzilla.redhat.com/show_bug.cgi?id=904851 le wiki a depuis été mis à jour et cette ligne supprimée.
Don