Расширение GLX не работает должным образом с xvfb

15

У меня есть система 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 загружено неправильно? Есть что-то, что я должен проверить?

Джорджио
источник
На вики-странице [1] Xvfb говорится: «В отличие от реального сервера отображения, Xvfb не поддерживает современные расширения X11, такие как композитинг, Randr или GLX. Xdummy - более новая альтернатива, которая поддерживает эти расширения, а также предоставляет те же функциональные возможности, что и Xvfb «. [1] en.wikipedia.org/wiki/Xvfb
alpert
@alpertek вы должны опубликовать это как ответ. GLX обычно нуждается в драйвере для чипа, чтобы быть полезным.
XTL
3
вышеприведенные комментарии не верны. мы использовали GLX на Xvfb в течение нескольких лет в тестовом наборе OpenSCAD. bugzilla.redhat.com/show_bug.cgi?id=904851
наденьте светлый
Хорошо, что комментарий в вики был удален. en.wikipedia.org/w/…
Владимир Чунат

Ответы:

2

Xvfb (X виртуальный кадровый буфер) - это виртуальные Xsever, которые не поддерживают реальное аппаратное ускорение.

Вам нужно вызывать вызовы openGL, с virtualGL , раскладывать реальные вызовы через реальный 3D Xserver и 2d рендеринг в Xvfb или другой 2D Xserver.

$ Xvfb :1 -screen 0 1024x768x24 +extension GLX +render -noreset >> xsession.log 2>&1 &
$ env DISPLAY=:1 vglrun glxinfo 
al3x609
источник
Хотя он не поддерживает реальное аппаратное ускорение, он отлично поддерживает Mesa (программное обеспечение GLX) - я проверял это некоторое время назад (еще в 2018 году). Так что вам не нужно использовать настоящий 3D Xserver, хотя, конечно, это вариант.
Деркт
1

в моих файлах журнала я вижу, что все в порядке вплоть до инициализации встроенного расширения GLX, но затем следует

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

может быть ключевой вопрос с xkbcomp?

Илья Евлампиев
источник
1

На вики- странице Xvfb говорится: «В отличие от реального сервера отображения, Xvfb не поддерживает современные расширения X11, такие как композитинг, Randr или GLX. Xdummy - более новая альтернатива, которая поддерживает эти расширения, а также предоставляет те же функциональные возможности, что и Xvfb».

Альперт
источник
Для получения дополнительной информации используйте Xdummy -h(на Arch Linux нет man-страницы с x11vnc 0.9.13-6).
Лекенштейн
7
этот ответ не верен. мы использовали GLX на Xvfb в течение нескольких лет в Linux для безголового набора тестов OpenSCAD. bugzilla.redhat.com/show_bug.cgi?id=904851 с тех пор вики была обновлена ​​и эта строка удалена.
Дон Яркий