Forcer le rendu OpenGL basé sur le logiciel

11

Comment puis-je forcer une application à utiliser le rendu OpenGL basé sur un logiciel sur Ubuntu?

Policier
la source
De quelle (sorte) d'application parlons-nous?
Bobby

Réponses:

20

Si vous utilisez Mesa libGL, vous pouvez activer le rendu logiciel en permanence en exécutant:

sudo apt-get install libgl1-mesa-swx11

Cela supprimera les libgl1-mesa-glxbibliothèques Mesa à accélération matérielle et installera le moteur de rendu uniquement logiciel.

Alternativement, vous pouvez définir LIBGL_ALWAYS_SOFTWARE=1ce qui n'affectera que les programmes démarrés avec cette variable d'environnement, pas l'ensemble du système.

Ces deux modifications peuvent ne pas fonctionner si vous utilisez les pilotes binaires NVidia, qui fournissent les leurs libGL.

éphémère
la source
1
Bonjour, où puis-je définir cette variable LIBGL_ALWAYS_SOFTWARE = ​​1? J'ai le problème inverse, OpenGL est toujours rendu par logiciel et mon ordinateur portable ne prend pas en charge Unity3D pour Ubuntu 15.04. J'ai des graphiques hybrides Intel-Nvidia.
Santi
1
libgl1-mesa-swx11 ne remplace plus libgl1-mesa-glx. Ainsi, lors de son installation, vous devez configurer un remplacement pour l'utiliser. Néanmoins, je recommande d'utiliser le rendu du logiciel LLVM-Pipe en utilisant "LIBGL_ALWAYS_SOFTWARE = ​​1". Il est beaucoup plus rapide et tire parti du matériel plus récent. De plus, les utilisateurs des pilotes nvidia et amd peuvent forcer l'utilisation du pipeline logiciel mesa, si mesa est installé, en utilisant un hack ld.so pour remplacer la bibliothèque libGL chargée.
Robert Wm Ruedisueli
2
Est-ce que cela fonctionne sur les pilotes propriétaires AMD? Existe-t-il une option simple sur Nvidia?
Daniel M Gessel
Je me demande pourquoi LIBGL_ALWAYS_SOFTWARE=1ne pourrait pas être fait fonctionner avec les pilotes NVIDIA installés + libgl1-mesa-glx, car mon programme est toujours lié à /usr/lib/x86_64-linux-gnu/libGL.so(fourni par libgl1-mesa-dev) et non /usr/lib/nvidia-361/libGL.so, qui semble être chargé dlopenpar Mesa. Ubuntu 16.04.
Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功
1

S'il s'agit de votre propre application, vous pouvez créer un lien vers l'implémentation du logiciel OpenGL Mesa3D .

Malte Clasen
la source