Rozszerzenie GLX nie działa poprawnie z xvfb


15

Mam system Ubuntu 14.04 z zainstalowanymi następującymi pakietami:

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

Chcę uruchomić aplikację pod Xvfb. Najpierw uruchamiam xvfb z:

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

a następnie sprawdź plik dziennika 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

co pokazuje brak błędów. Wygląda również na to, że GLX został poprawnie załadowany. Teraz, jeśli sprawdzę serwer za pomocą

$ glxinfo -display :1

dostaję

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

W rzeczywistości aplikacja, którą chcę uruchomić na tym serwerze i która wymaga GLX, nie chce się uruchomić.

Po sprawdzeniu kilku stron z dokumentami i forów nie mam pojęcia, co się tu dzieje. Dlaczego plik dziennika serwera X nie wyświetla żadnych błędów, jeśli rozszerzenie GLX nie zostało poprawnie załadowane? Czy jest coś, co powinienem sprawdzić?


Na stronie wiki [1] Xvfb napisano: „W przeciwieństwie do prawdziwego serwera wyświetlania, Xvfb nie obsługuje nowoczesnych rozszerzeń X11, takich jak komponowanie, Randr lub GLX. Xdummy to nowsza alternatywa, która obsługuje te rozszerzenia, a także zapewnia taką samą funkcjonalność jak Xvfb . ” [1] en.wikipedia.org/wiki/Xvfb
alpert

@alpertek powinieneś opublikować to jako odpowiedź. GLX ogólnie potrzebuje sterownika specyficznego dla układu, aby był użyteczny.
XTL

3
powyższe komentarze są nieprawidłowe. używaliśmy GLX na Xvfb od kilku lat w pakiecie testowym OpenSCAD. bugzilla.redhat.com/show_bug.cgi?id=904851
don bright

W międzyczasie ten komentarz na wiki został usunięty. en.wikipedia.org/w/…
Vladimír Čunát

Odpowiedzi:


2

Xvfb (bufor wirtualnej ramki X) to wirtualny Xsever nie obsługujący rzeczywistego przyspieszenia sprzętowego.

Potrzebujesz spawnowania wywołań openGL, dzięki virtualGL , rozwidlaj prawdziwe wywołania za pomocą prawdziwego Xservera 3D i renderowania 2D do Xvfb lub innego Xservera 2D.

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

Chociaż nie obsługuje rzeczywistego przyspieszania sprzętowego, dobrze obsługuje Mesa (oprogramowanie GLX) - sprawdziłem jakiś czas temu (jeszcze w 2018 r.). Dzięki czemu nie trzeba używać Real 3D Xserver, choć to oczywiście opcja.
reż

1

w moich plikach dziennika widzę, że wszystko jest w porządku, aż do zainicjowania wbudowanego rozszerzenia GLX, ale potem następuje

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

może być kluczowym problemem jest z xkbcomp?


1

Na stronie wiki Xvfb jest napisane: „W przeciwieństwie do prawdziwego serwera wyświetlania, Xvfb nie obsługuje nowoczesnych rozszerzeń X11, takich jak komponowanie, Randr lub GLX. Xdummy to nowsza alternatywa, która obsługuje te rozszerzenia, a także zapewnia taką samą funkcjonalność jak Xvfb.”


Aby uzyskać więcej informacji, użyj Xdummy -h(nie ma strony podręcznej od wersji x11vnc 0.9.13-6 w Arch Linux).
Lekensteyn,

7
ta odpowiedź jest nieprawidłowa. używaliśmy GLX na Xvfb przez kilka lat w systemie Linux dla bezgłowego zestawu testów OpenSCAD. bugzilla.redhat.com/show_bug.cgi?id=904851 wiki została od tego czasu zaktualizowana i ta linia została usunięta.
don bright
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.