Extensão GLX não está funcionando corretamente com xvfb

15

Eu tenho um sistema Ubuntu 14.04 com os seguintes pacotes instalados:

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

Quero iniciar um aplicativo no xvfb. Primeiro inicio o xvfb com:

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

e verifique o arquivo de log 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

que não mostra erros. Além disso, parece que o GLX foi carregado corretamente. Agora, se eu verificar o servidor com

$ glxinfo -display :1

eu recebo

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

De fato, o aplicativo que eu quero iniciar neste servidor e que precisa do GLX não será iniciado.

Depois de verificar várias páginas de documentação e fóruns, não tenho idéia do que está acontecendo de errado aqui. Por que o arquivo de log do servidor X não mostra erros se a extensão GLX não foi carregada corretamente? Existe algo que eu deveria verificar?

Giorgio
fonte
Na página wiki [1] do Xvfb, ele diz: "Ao contrário de um servidor de exibição real, o Xvfb não suporta extensões X11 modernas, como composição, Randr ou GLX. O Xdummy é uma alternativa mais nova que suporta essas extensões, além de fornecer a mesma funcionalidade do Xvfb. . " [1] pt.wikipedia.org/wiki/Xvfb
alpert 31/10/14
@perperk você deve postar isso como uma resposta. O GLX geralmente precisa de um driver específico para o chip para ser útil.
XTL
3
os comentários acima não estão corretos. usamos o GLX no Xvfb por vários anos no conjunto de testes do OpenSCAD. bugzilla.redhat.com/show_bug.cgi?id=904851
don bright
Bem, esse comentário no wiki foi removido nesse meio tempo. en.wikipedia.org/w/…
Vladimír Čunát

Respostas:

2

Xvfb (buffer de quadro virtual X) é um virtual Xsever não suporta aceleração de hardware real.

Você precisa gerar chamadas de openGL, com o virtualGL , bifurca as chamadas reais por meio de um Xserver 3D real e renderização 2D para Xvfb ou outro Xserver 2D.

$ Xvfb :1 -screen 0 1024x768x24 +extension GLX +render -noreset >> xsession.log 2>&1 &
$ env DISPLAY=:1 vglrun glxinfo 
al3x609
fonte
Embora não suporte a aceleração de hardware real, ele suporta o Mesa (software GLX) - verifiquei há algum tempo (ainda em 2018). Portanto, você não precisa usar um Xserver 3D real, mas é claro que é uma opção.
dirkt
1

Na página wiki do Xvfb, ele diz: "Ao contrário de um servidor de exibição real, o Xvfb não suporta extensões X11 modernas, como composição, Randr ou GLX. O Xdummy é uma alternativa mais recente que suporta essas extensões, além de fornecer a mesma funcionalidade do Xvfb."

alpert
fonte
Para obter mais informações, use Xdummy -h(não há nenhuma página de manual a partir do x11vnc 0.9.13-6 no Arch Linux).
Lekensteyn
7
esta resposta não está correta. usamos GLX no Xvfb por vários anos no linux para o pacote de teste OpenSCAD sem cabeça. bugzilla.redhat.com/show_bug.cgi?id=904851 o wiki foi atualizado e a linha removida.
don bright
0

nos meus arquivos de log, vejo que está tudo bem até Inicializar a extensão incorporada GLX, mas é seguida por

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

pode ser que o principal problema seja com xkbcomp?

Ilya Yevlampiev
fonte