บังคับใช้การเรนเดอร์ opengl ที่อิงกับซอฟต์แวร์


11

ฉันจะบังคับให้แอปพลิเคชันใช้การแสดงผล opengl บนซอฟต์แวร์บน Ubuntu ได้อย่างไร


เรากำลังพูดถึงแอปพลิเคชั่นประเภทใด
Bobby

คำตอบ:


20

หากคุณใช้ Mesa อยู่libGLคุณสามารถเปิดใช้งานการแสดงผลซอฟต์แวร์อย่างถาวรโดยเรียกใช้:

sudo apt-get install libgl1-mesa-swx11

สิ่งนี้จะลบlibgl1-mesa-glxไลบรารี Mesa ที่เร่งด้วยฮาร์ดแวร์และติดตั้ง renderer เฉพาะซอฟต์แวร์

อีกวิธีหนึ่งคุณสามารถตั้งค่าLIBGL_ALWAYS_SOFTWARE=1ซึ่งจะมีผลเฉพาะกับโปรแกรมที่เริ่มต้นด้วยตัวแปรสภาพแวดล้อมนั้นไม่ใช่ทั้งระบบ

ทั้งการเปลี่ยนแปลงเหล่านี้อาจจะไม่ทำงานถ้าคุณกำลังใช้ไดรเวอร์ NVidia libGLไบนารีซึ่งจัดหาของตัวเอง


1
สวัสดีฉันสามารถตั้งค่าตัวแปรนี้ LIBGL_ALWAYS_SOFTWARE = ​​1 ได้ที่ไหน ฉันมีปัญหาผกผัน OpenGL มักแสดงผลซอฟต์แวร์และแล็ปท็อปของฉันไม่รองรับ Unity3D สำหรับ Ubuntu 15.04 ฉันมีกราฟิก Intel-Nvidia ไฮบริด
Santi

1
libgl1-mesa-swx11 จะไม่แทนที่ libgl1-mesa-glx อีกต่อไป ดังนั้นเมื่อทำการติดตั้งคุณจำเป็นต้องกำหนดค่าการแทนที่ให้ใช้งาน ยังฉันขอแนะนำให้ใช้การแสดงผลซอฟต์แวร์ LLVM-Pipe โดยใช้ "LIBGL_ALWAYS_SOFTWARE = ​​1" มันเร็วกว่ามากและใช้ประโยชน์จากฮาร์ดแวร์รุ่นใหม่ นอกจากนี้ผู้ใช้ไดรเวอร์ nvidia และ amd สามารถบังคับให้ใช้ไพพ์ไลน์ของซอฟต์แวร์ mesa หากติดตั้ง mesa ผ่านการใช้ ld.so hack เพื่อแทนที่ไลบรารี libGL ที่โหลด
Robert Wm Ruedisueli

2
สิ่งนี้ใช้ได้กับไดรเวอร์ที่เป็นกรรมสิทธิ์ของ AMD หรือไม่ มีตัวเลือกง่าย ๆ สำหรับ Nvidia หรือไม่?
Daniel M Gessel

ฉันสงสัยว่าทำไมLIBGL_ALWAYS_SOFTWARE=1ไม่สามารถทำงานกับไดรเวอร์ NVIDIA ที่ติดตั้ง + libgl1-mesa-glxเนื่องจากโปรแกรมของฉันยังคงเชื่อมโยงกับ/usr/lib/x86_64-linux-gnu/libGL.so(ให้บริการโดยlibgl1-mesa-dev) และไม่ใช่/usr/lib/nvidia-361/libGL.soซึ่งดูเหมือนว่าจะโหลดdlopenโดย Mesa Ubuntu 16.04
Ciro Santilli 法轮功病毒审查六四事件法轮功

1

หากนี่เป็นเรื่องเกี่ยวกับแอปพลิเคชันของคุณเองคุณสามารถเชื่อมโยงกับการใช้งานซอฟต์แวร์ OpenGL Mesa3Dได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.