En swrast
est le logiciel de rendu. Cela signifie qu'il ne trouve pas le pilote matériel de votre carte graphique. Il y a un tas de bibliothèques libGL installées et un tas de liens symboliques vers ces bibliothèques. Pour les voir, lancez ceci à partir du Shell :
find /usr -iname "*libGL.so*" -exec ls -l -- {} +
La cause probable de votre problème est que l'installation de pilotes graphiques rompt parfois ces liens symboliques. (Plus précisément /usr/local/lib/libGL.so.1.2.0
est probablement soit la mauvaise librairie, soit un lien symbolique vers le mauvais lien) (N.B. J'ai écrit ceci il y a un moment. libGL.so.1.2.0 était la version actuelle de gl, il se peut qu'il y ait autre chose maintenant).
Pour savoir quelle bibliothèque les programmes OpenGL essaient d'exécuter, vous pouvez activer un peu de verbosité et exécuter un simple programme OpenGL. Vous pouvez vérifier cela en utilisant le programme de test standard d'OpenGL :
LIBGL_DEBUG=verbose glxgears
Espérons qu'il échouera de la même manière que SFML. Avec LIBGL_DEBUG
il devrait vous indiquer la bibliothèque OpenGL qu'il essaie de charger. De plus, la bibliothèque qu'il essaiera de charger sera très certainement /usr/local/lib/libGL.so.1.2.0
(Edit : C'était la bibliothèque OpenGL standard sur ma machine au moment où j'ai répondu à cette question. Il se peut qu'il s'agisse d'une autre version sur votre machine aujourd'hui).
La solution (dans ce cas) consiste donc à s'assurer que /usr/local/lib/libGL.so.1.2.0
est un lien symbolique pointant vers la bonne bibliothèque OpenGL. Dans mon cas, j'ai le pilote Nvidia 3.40 et j'ai donc exécuté :
ln -s /usr/lib/nvidia-340/libGL.so.1 /usr/local/lib/libGL.so.1.2.0
Mais vous devrez la diriger vers la librairie OpenGL qui vous convient (listée dans la première commande find).
En résumé : l'installation de pilotes graphiques (propriétaires) peut rompre les liens symboliques utilisés pour les librairies OpenGL. Pour résoudre ce problème, fixez manuellement les liens symboliques (fix /usr/local/lib/libGL.so.1.2.0
premier).