ส่วนขยาย 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

@pertek คุณควรโพสต์ว่าเป็นคำตอบ โดยทั่วไป GLX ต้องการไดรเวอร์เฉพาะชิปเพื่อเป็นประโยชน์
XTL

3
ความคิดเห็นข้างต้นไม่ถูกต้อง เราใช้ GLX บน Xvfb เป็นเวลาหลายปีในชุดทดสอบ OpenSCAD bugzilla.redhat.com/show_bug.cgi?id=904851
ดอนสดใส

ความคิดเห็นในวิกินั้นถูกลบออกในเวลาเดียวกัน en.wikipedia.org/w/…
VladimírČunát

คำตอบ:


2

Xvfb (X virtual Frame buffer) เป็น Xsever virtual ไม่สนับสนุนการเร่งด้วยฮาร์ดแวร์จริง

คุณต้องวางไข่การโทรแบบ openGL ด้วย virtualGLแยกการโทรจริงผ่าน 3D Xserver จริงและการเรนเดอร์ 2 มิติไปยัง 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

ในหน้า wiki ของ Xvfb กล่าวว่า: "แตกต่างจากเซิร์ฟเวอร์ดิสเพลย์ที่แท้จริง Xvfb ไม่สนับสนุนส่วนขยาย X11 ที่ทันสมัยเช่นคอมโพสิต Randr หรือ GLX Xdummy เป็นทางเลือกใหม่ที่รองรับส่วนขยายเหล่านี้


สำหรับข้อมูลเพิ่มเติมให้ใช้Xdummy -h(ไม่มี manpage ตั้งแต่ x11vnc 0.9.13-6 บน Arch Linux)
Lekensteyn

7
คำตอบนี้ไม่ถูกต้อง เราใช้ GLX บน Xvfb เป็นเวลาหลายปีใน linux สำหรับชุดทดสอบ OpenSCAD ที่ไม่มีหัว bugzilla.redhat.com/show_bug.cgi?id=904851 wiki ได้รับการปรับปรุงและลบบรรทัดนั้นออก
ดอนสดใส
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.