Розширення 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 було завантажено неправильно? Чи потрібно щось перевірити?


На сторінці wiki [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 virtual frame buffer) - це віртуальна версія 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 

Хоча він не підтримує реальне апаратне прискорення, він підтримує Mesa (програмне забезпечення GLX) просто чудово - я перевірив деякий час тому (ще в 2018 році). Тому вам не потрібно використовувати справжній 3D Xserver, хоча це, звичайно, варіант.
dirkt

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(немає аркушів станом на x11vnc 0.9.13-6 в Arch Linux).
Лекенштейн

7
ця відповідь невірна. ми використовували GLX на Xvfb протягом декількох років в Linux для безголового тестового набору OpenSCAD. bugzilla.redhat.com/show_bug.cgi?id=904851 Вікі з тих пір оновлено, і цей рядок видалено.
нехай яскравий
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.