Actions











Mesa 7.9 dev : comment configurer, compiler et tester.

Écrit le 10/07/2010 @ 00:45 par Alexandre

Informatique - ProgrammationSi vous désirez tester la dernière version de Mesa, l'implémentation d'OpenGL sous Linux et les BSDs, cela peut se faire très simplement. Beaucoup plus simplement que je ne l'aurais cru, sans même avoir à installer la dernière version que vous compilerez tout en laissant votre système stable en toute sécurité.

Ça vous intéresse? Suivez le guide en lisant la suite.

D'abord, si vous désirez tester la dernière version, vous devrez utiliser git pour télécharger le code à partir d'un terminal ou avec votre logiciel git préféré :

git clone git://anongit.freedesktop.org/mesa/mesa



Voilà, vous avez le code. Maintenant, il faut configurer le tout pour la compilation et l'installation. J'ai décidé de tester à la fois les pilotes réguliers DRI et Gallium3D. Voici la commande pour tout activer, je vous explique ensuite les options. Tapez la dans le dossier dans lequel vous avez téléchargé mesa.

./autogen.sh --prefix=/usr --enable-gallium-r600 --enable-xcb --enable-gallium-llvm --enable-selinux --enable-gallium-nouveau --enable-glx-tls --enable-gallium-radeon --enable-gallium-i915 --enable-gallium-i965 --enable-gl-osmesa --enable-gles1 --enable-gles2 --enable-gles-overlay



./autogen.sh : c'est l'outil de configuration automatique. Si vous voulez des détails sur les options, tapez

./autogen.sh --help

. C'est cet outil qui vérifiera tous les prérequis et vous informera s'il vous manque des librairies pour la compilation.

--prefix=/usr : c'est le chemin de base qui servira à l'installation de Mesa (si vous désirez installer à la fin).

--enable-gallium-pilote (r600, llvm, nouveau, radeon, i915, i965) : par défaut, l'architecture Gallium sera activée, mais il faut spécifier les pilotes qui seront compilés. r600 pour les chipsets ATI r600 et r700; radeon pour les r300 à r500; nouveau pour Nvidia, i915 et i965 pour les chipsets Intel respectifs; llvm pour le cas où ce serait le CPU plutôt que le GPU qui aurait à gérer l'OpenGL.

--enable-selinux : si votre distribution utilise SELinux pour sécuriser votre système et vérifier le fonctionnement des applications, mettez cette option.

--enable-xcb : selon les distributions, les librairies Xlib et XCB sont utilisées, parfois les deux selon les applications. En fait, XCB se veut un remplacement de Xlib.

--enable-glx-tls : d'abord, glX est en lien avec les extensions propres à X (sous Linux et BSDs avec X11 ou Xorg). Ensuite, TLS signifie Thread Local Storage. Si quelqu'un peut m'en dire plus, je serais charmé de savoir ce que ça mange en hiver.

--enable-gl-osmesa : osmesa est pour Off-Screen Mesa, ce n'est pas nécessaire, mais cela permet de bâtir le code nécessaire pour certaines applications

--enable-gles(1 et 2) : c'est probablement inutile pour la plupart d'entre vous, mais ces options compileront les librairies pour un sous-ensemble d'OpenGL 3, OpenGL ES, principalement pour les systèmes embarqués, comme les portables.

--enable-gles-overlay : complète les options gles, mais probablement inutile vu les explications de l'option précédente.

D'autres options sont aussi disponibles, vérifiez avec l'aide.

Une fois la configuration automatique complétée, pour compiler mesa, tapez :

gmake



Maintenant, c'est le moment de tester. Vous ne pouvez aller en profondeur et tout tester de cette façon, mais vous pourrez malgré tout faire quelques essais. Lancez par exemple glxgears ou glxinfo ou openarea ajoutant un petit élément avant l'applicationé Voici ce que vous devez ajouter avant l'application que vous désirez tester (sur la même ligne que l'application) :

LD_LIBRARY_PATH=dossier racine du code de mesa/mesa/lib LIBGL_DRIVERS_PATH=dossier racine du code de mesa/mesa/lib



ou encore

LD_LIBRARY_PATH=dossier racine du code de mesa/mesa/lib LIBGL_DRIVERS_PATH=dossier racine du code de mesa/mesa/lib/gallium



La première sert à tester les pilotes classiques DRI, alors que la seconde teste les pilotes Gallium. Vous verrez qu'il existe des différences entre les deux architectures. Sachez que Gallium est la voie à suivre, DRI mourra tranquillement.

Bon test et amusez-vous bien.

J'oubliais : si vous désirez installer votre compilation, il suffit de taper :

make install



Mais je vous le déconseille avec les versions en développement.

Dernière modification le 11/07/2010 @ 13:35 par Alexandre

Commentaire par Nick  Score: 2
Écrit le: 11/07/2010 @ 08:38

Est-ce que ça concerne seulement les chipset ATI?

Commentaire par Alexandre  Score: 2
Écrit le: 11/07/2010 @ 14:03

Non, absolument pas. Comme je le mentionne, j'ai mis toutes les options pour les pilotes. J'aurais pu aussi ajouter une option pour spécifier les pilotes individuellement sous DRI, mais avec ce que j'ai mis et testé, tout cela se fait de lui-même.

En fait, avec les mêmes options, j'ai compilé les pilotes DRI Nouveau, ATI, Intel (et quelques autres) et leur pendant Gallium. J'ai testé sur ma tour (ATI R600) et sur mon netbook (i915) les pilotes DRI et Gallium pour les comparer. Je vous reviendrai avec plus de détails à ce sujet sous peu.

Commentaire par Alexandre  Score: 2
Écrit le: 11/07/2010 @ 14:06

Voici un extrait de ma configuration :

Driver: dri
OSMesa: libOSMesa
DRI drivers: i810 i915 i965 mach64 mga r128 r200 r300 r600 radeon savage sis tdfx unichrome swrast
DRI driver dir: ${libdir}/dri
Use XCB: yes

...

Gallium: yes
Gallium dirs: auxiliary drivers state_trackers
Target dirs: egl dri-i915 xorg-i915 dri-i965 xorg-i965 dri-radeong xorg-radeon dri-r600 dri-nouveau xorg-nouveau dri-swrast
Winsys dirs: sw sw/xlib sw/dri i915/sw i915/drm i965/drm radeon/drm r600/drm nouveau/drm
Driver dirs: softpipe failover galahad trace rbug identity llvmpipe svga i915 i965 r300 r600 nouveau nvfx nv50
Trackers dirs: dri egl xorg
EGL client APIs: $(GL_LIB) $(GLESv1_CM_LIB) $(GLESv2_LIB)

Commentaire par Alexandre  Score: 2
Écrit le: 11/07/2010 @ 19:16

Ce qu'il faut remarquer, c'est d'abord l'activation des pilotes DRI et l'ensemble des pilotes qui sont compilés.

Ensuite, c'est l'activation des pilotes Gallium et l'ensemble qui sont compilés.

Les deux architectures, les deux pilotes pour les chipsets/GPU développés.

Commentaire par Alexandre  Score: 2
Écrit le: 13/07/2010 @ 16:56

En date d'aujourd'hui, les pilotes DRI r600 m'offrent les fonctionnalités d'OpenGL 2.0 avec GLSL 1.10, alors que les pilotes Gallium r600g offrent l'implémentation d'OpenGL 2.1 et GLSL 1.20.

Du côté d'Intel, c'est OpenGL 1.4 avec les pilotes DRI, mais seulement 1.3 avec ceux Gallium. Je tente présentement trouver comment ou pourquoi la version n'est pas la même, si je trouve, je vous laisserai savoir.

Commentaire par Alexandre  Score: 2
Écrit le: 10/08/2010 @ 23:23

Pour les intéressez, voici mes scripts de compilation et de test.

build-mesa.sh
(Attention, "gmake -j" devra peut-être être ajusté selon votre machine... "gmake --help") :

make realclean
./autogen.sh --prefix=/usr --enable-gallium-r600 --enable-xcb --enable-gallium-llvm --enable-selinux --enable-gallium-nouveau --enable-glx-tls --enable-gallium-radeon --enable-gallium-i915 --enable-gallium-i965 --enable-gl-osmesa --enable-gles1 --enable-gles2 --enable-gles-overlay
gmake -j



test-mesa-dri.sh
(à utiliser avec en argument une application, ex. ./test-mesa-dri.sh glxinfo):

export LD_LIBRARY_PATH=~/projects/mesa/lib
export LD_PRELOAD=~/projects/mesa/lib/libGL.so.1
export LIBGL_DRIVERS_PATH=~/projects/mesa/lib
$1



test-mesa-gallium.sh
(à utiliser avec en argument une application, ex. ./test-mesa-gallium.sh glxinfo):

export LD_LIBRARY_PATH=~/projects/mesa/lib
export LD_PRELOAD=~/projects/mesa/lib/libGL.so.1
export LIBGL_DRIVERS_PATH=~/projects/mesa/lib/gallium
$1


Dernière modification le 10/08/2010 @ 23:25


Tous les blogs
<< Ralink RT2870 et kernel 2.6.35 | Retour aux blogs | Great canadian Bungee >>
Blogs de la même catégorie
<< Mon script de backup de MySQL | Comment implémenter une interface pour les plugins >>