L'estensione GLX non funziona correttamente con xvfb


15

Ho un sistema Ubuntu 14.04 con i seguenti pacchetti installati:

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

Voglio avviare un'applicazione in xvfb. In primo luogo inizio xvfb con:

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

e quindi controlla il file di registro 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

che non mostra errori. Inoltre, sembra che GLX sia stato caricato correttamente. Ora, se controllo il server con

$ glxinfo -display :1

ottengo

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

In effetti, l'applicazione che desidero avviare su questo server e che necessita di GLX non verrà avviata.

Dopo aver controllato diverse pagine di documentazione e forum, non ho idea di cosa vada storto qui. Perché il file di registro del server X non mostra alcun errore se l'estensione GLX non è stata caricata correttamente? C'è qualcosa che dovrei controllare?


Nella pagina wiki [1] di Xvfb dice: "A differenza di un vero display server, Xvfb non supporta le moderne estensioni X11 come la composizione, Randr o GLX. Xdummy è una nuova alternativa che supporta queste estensioni e fornisce le stesse funzionalità di Xvfb ". [1] en.wikipedia.org/wiki/Xvfb
alpert

@alpertek dovresti pubblicarlo come risposta. GLX richiede generalmente un driver specifico per il chip per essere utile.
XTL

3
i commenti sopra non sono corretti. abbiamo usato GLX su Xvfb per diversi anni nella suite di test OpenSCAD. bugzilla.redhat.com/show_bug.cgi?id=904851
don luminoso

Bene quel commento nel wiki è stato rimosso nel frattempo. en.wikipedia.org/w/…
Vladimír Čunát

Risposte:


2

Xvfb (X virtual Frame buffer) è un Xsever virtuale che non supporta l'accelerazione hardware reale.

È necessario generare chiamate openGL, con virtualGL , eseguire il fork delle chiamate reali tramite un vero Xserver 3D e il rendering 2d su Xvfb o su un altro Xserver 2D.

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

Anche se non supporta l'accelerazione hardware reale, supporta Mesa (software GLX) bene - l'ho verificato qualche tempo fa (ancora nel 2018). Quindi non è necessario utilizzare un vero Xserver 3D, anche se ovviamente è un'opzione.
Dirkt,

1

nei miei file di registro vedo che va tutto bene fino a Inizializzazione dell'estensione GLX integrata ma poi è seguita da

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

potrebbe essere il problema chiave con xkbcomp?


1

Nella pagina wiki di Xvfb dice: "A differenza di un vero server di visualizzazione, Xvfb non supporta le moderne estensioni X11 come la composizione, Randr o GLX. Xdummy è una nuova alternativa che supporta queste estensioni e fornisce le stesse funzionalità di Xvfb."


Per ulteriori informazioni, utilizzare Xdummy -h(non esiste una manpage di x11vnc 0.9.13-6 su Arch Linux).
Lekensteyn,

7
questa risposta non è corretta. abbiamo usato GLX su Xvfb per diversi anni in Linux per la suite di test OpenSCAD senza testa. bugzilla.redhat.com/show_bug.cgi?id=904851 da allora la wiki è stata aggiornata e quella riga rimossa.
don luminoso
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.