Dadurch werden die libgl1-mesa-glxhardwarebeschleunigten Mesa-Bibliotheken entfernt und der reine Software-Renderer installiert.
Alternativ können Sie festlegen LIBGL_ALWAYS_SOFTWARE=1, was nur Programme betrifft, die mit dieser Umgebungsvariablen gestartet wurden, nicht das gesamte System.
Diese beiden Änderungen funktionieren möglicherweise nicht, wenn Sie die binären NVidia-Treiber verwenden, die ihre eigenen bereitstellen libGL.
Hallo, wo kann ich diese Variable LIBGL_ALWAYS_SOFTWARE = 1 setzen? Ich habe das umgekehrte Problem, OpenGL wird immer per Software gerendert und mein Laptop unterstützt Unity3D für Ubuntu 15.04 nicht. Ich habe hybride Intel-Nvidia-Grafiken.
Santi
1
libgl1-mesa-swx11 ersetzt libgl1-mesa-glx nicht mehr. Daher müssen Sie bei der Installation eine Überschreibung konfigurieren, um sie zu verwenden. Trotzdem empfehle ich die Verwendung des LLVM-Pipe-Software-Renderings mit "LIBGL_ALWAYS_SOFTWARE = 1". Es ist viel schneller und nutzt neuere Hardware. Außerdem können Benutzer von nvidia- und amd-Treibern die Verwendung der mesa-Software-Pipeline erzwingen, wenn mesa installiert ist, indem sie einen ld.so-Hack verwenden, um die geladene libGL-Bibliothek zu überschreiben.
Robert Wm Ruedisueli
2
Funktioniert dies mit proprietären AMD-Treibern? Gibt es eine einfache Option für Nvidia?
Daniel M Gessel
Ich frage mich, warum LIBGL_ALWAYS_SOFTWARE=1nicht mit installierten NVIDIA-Treibern + gearbeitet werden konnte libgl1-mesa-glx, da mein Programm immer noch mit /usr/lib/x86_64-linux-gnu/libGL.so(bereitgestellt von libgl1-mesa-dev) verknüpft ist und nicht /usr/lib/nvidia-361/libGL.so, was dlopenvon Mesa geladen zu sein scheint . Ubuntu 16.04.
Ciro Santilli 4 改造 中心. 六四
1
Wenn es sich um Ihre eigene Anwendung handelt, können Sie einen Link zur Software OpenGL Implementation Mesa3D erstellen .
Antworten:
Wenn Sie Mesa verwenden
libGL
, können Sie das Software-Rendering dauerhaft aktivieren, indem Sie Folgendes ausführen:Dadurch werden die
libgl1-mesa-glx
hardwarebeschleunigten Mesa-Bibliotheken entfernt und der reine Software-Renderer installiert.Alternativ können Sie festlegen
LIBGL_ALWAYS_SOFTWARE=1
, was nur Programme betrifft, die mit dieser Umgebungsvariablen gestartet wurden, nicht das gesamte System.Diese beiden Änderungen funktionieren möglicherweise nicht, wenn Sie die binären NVidia-Treiber verwenden, die ihre eigenen bereitstellen
libGL
.quelle
LIBGL_ALWAYS_SOFTWARE=1
nicht mit installierten NVIDIA-Treibern + gearbeitet werden konntelibgl1-mesa-glx
, da mein Programm immer noch mit/usr/lib/x86_64-linux-gnu/libGL.so
(bereitgestellt vonlibgl1-mesa-dev
) verknüpft ist und nicht/usr/lib/nvidia-361/libGL.so
, wasdlopen
von Mesa geladen zu sein scheint . Ubuntu 16.04.Wenn es sich um Ihre eigene Anwendung handelt, können Sie einen Link zur Software OpenGL Implementation Mesa3D erstellen .
quelle