Ekstensi GLX tidak berfungsi dengan benar dengan xvfb

15

Saya memiliki sistem Ubuntu 14.04 dengan paket-paket berikut diinstal:

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

Saya ingin memulai aplikasi di bawah xvfb. Saya pertama kali memulai xvfb dengan:

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

dan kemudian periksa file 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

yang tidak menunjukkan kesalahan. Juga, tampaknya GLX telah dimuat dengan benar. Sekarang, jika saya memeriksa server dengan

$ glxinfo -display :1

saya mendapat

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

Bahkan, aplikasi yang ingin saya mulai di server ini dan yang membutuhkan GLX tidak akan mulai.

Setelah memeriksa beberapa halaman dan forum dokumentasi, saya tidak tahu apa yang salah di sini. Mengapa file log server X tidak menunjukkan kesalahan jika ekstensi GLX tidak dimuat dengan benar? Apakah ada sesuatu yang harus saya periksa?

Giorgio
sumber
Di halaman wiki [1] dari Xvfb dikatakan: "Tidak seperti server tampilan nyata, Xvfb tidak mendukung ekstensi X11 modern seperti pengomposisian, Randr atau GLX. Xdummy adalah alternatif yang lebih baru yang mendukung ekstensi ini serta menyediakan fungsi yang sama seperti Xvfb . " [1] en.wikipedia.org/wiki/Xvfb
alpert
@alpertek Anda harus memposting itu sebagai jawaban. GLX umumnya membutuhkan driver khusus chip agar bermanfaat.
XTL
3
komentar di atas tidak benar. kami menggunakan GLX pada Xvfb selama beberapa tahun di test suite OpenSCAD. bugzilla.redhat.com/show_bug.cgi?id=904851
don bright
Nah, komentar di wiki sudah dihapus sementara itu. en.wikipedia.org/w/…
Vladimír Čunát

Jawaban:

2

Xvfb (X virtual Frame buffer) adalah Xsever virtual yang tidak mendukung akselerasi perangkat keras yang sebenarnya.

Anda perlu menelurkan panggilan openGL , dengan virtualGL , memotong panggilan nyata melalui Xserver 3D nyata dan rendering 2d ke Xvfb atau 2D Xserver lainnya.

$ Xvfb :1 -screen 0 1024x768x24 +extension GLX +render -noreset >> xsession.log 2>&1 &
$ env DISPLAY=:1 vglrun glxinfo 
al3x609
sumber
Meskipun tidak mendukung akselerasi perangkat keras yang sebenarnya, ia mendukung Mesa (perangkat lunak GLX) - saya telah memeriksa beberapa waktu lalu (masih di tahun 2018). Jadi, Anda tidak perlu menggunakan Xserver 3D sungguhan, meskipun tentu saja itu pilihan.
dirkt
1

dalam file log saya, saya melihat semuanya baik-baik saja hingga menginisialisasi ekstensi built-in GLX tetapi kemudian diikuti oleh

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

mungkin masalah utamanya adalah dengan xkbcomp?

Ilya Yevlampiev
sumber
1

Di halaman wiki Xvfb dikatakan: "Tidak seperti server tampilan nyata, Xvfb tidak mendukung ekstensi X11 modern seperti pengomposisian, Randr atau GLX. Xdummy adalah alternatif yang lebih baru yang mendukung ekstensi ini serta menyediakan fungsi yang sama seperti Xvfb."

alpert
sumber
Untuk informasi lebih lanjut, gunakan Xdummy -h(tidak ada halaman manual pada x11vnc 0.9.13-6 di Arch Linux).
Lekensteyn
7
jawaban ini tidak benar. kami menggunakan GLX di Xvfb selama beberapa tahun di linux untuk test suite OpenSCAD tanpa kepala. bugzilla.redhat.com/show_bug.cgi?id=904851 sejak itu wiki telah diperbarui dan baris itu dihapus.
don bright