У меня есть система Ubuntu 14.04 с установленными следующими пакетами:
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
Я хочу запустить приложение под xvfb. Сначала я запускаю xvfb с:
$ Xvfb :1 -screen 0 1024x768x24 +extension GLX +render -noreset >> xsession.log 2>&1 &
а затем проверьте файл журнала 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
который показывает без ошибок. Кроме того, кажется, что GLX был загружен правильно. Теперь, если я проверю сервер с
$ glxinfo -display :1
я получил
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".
...
Фактически, приложение, которое я хочу запустить на этом сервере и которому требуется GLX, не запустится.
После проверки нескольких страниц документации и форумов, я понятия не имею, что здесь происходит не так. Почему в файле журнала X-сервера не отображаются ошибки, если расширение GLX загружено неправильно? Есть что-то, что я должен проверить?
Ответы:
Xvfb (X виртуальный кадровый буфер) - это виртуальные Xsever, которые не поддерживают реальное аппаратное ускорение.
Вам нужно вызывать вызовы openGL, с virtualGL , раскладывать реальные вызовы через реальный 3D Xserver и 2d рендеринг в Xvfb или другой 2D Xserver.
источник
в моих файлах журнала я вижу, что все в порядке вплоть до инициализации встроенного расширения GLX, но затем следует
может быть ключевой вопрос с xkbcomp?
источник
На вики- странице Xvfb говорится: «В отличие от реального сервера отображения, Xvfb не поддерживает современные расширения X11, такие как композитинг, Randr или GLX. Xdummy - более новая альтернатива, которая поддерживает эти расширения, а также предоставляет те же функциональные возможности, что и Xvfb».
источник
Xdummy -h
(на Arch Linux нет man-страницы с x11vnc 0.9.13-6).