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?
Respostas:
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.
fonte
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."
fonte
Xdummy -h
(não há nenhuma página de manual a partir do x11vnc 0.9.13-6 no Arch Linux).nos meus arquivos de log, vejo que está tudo bem até Inicializar a extensão incorporada GLX, mas é seguida por
pode ser que o principal problema seja com xkbcomp?
fonte