Cette page est en cours de rédaction.
Apportez votre aide…

Ceci est une ancienne révision du document !


Par : phetu Traduction de: http://people.freedesktop.org/~ajax/dri-explanation.txt

Explication de OpenGL et autres acronymes sous linux

LOL

Cette page est complètement incompréhensible à moins d'être ingénieur software/développeur Linux :(

Je suis tombé sur cette page en cherchant des informations sur l'utilisation openGL sous Hardy…notamment pourquoi Google Earth ne fonctionne pas bien sur ma machine. Tout ce que je voulais savoir était si openGL est installé et configuré correctement dans mon kernel.

Cette page ne répond pas du tout à cette simple question : elle ne fait que poser 15 autres questions toutes plus obscures les unes que les autres et n'apporte aucune réponse simple et concrète!!

Pour les pas ingénieurs software/développeur

Bon alors vous voulez juste savoir si opengl est installé, le mieux à faire c'est de vérifié que les paquet opengl sont bien installé (liste à completer ou à corriger…);

* freeglut3

* libglut3

* libglu1-mesa ??

Les gens sont fréquemment confus par l'importante quantité d'acronyme qui entoure le monde de OpenGL sous Linux. Ce document est un effort pour réduire la confusion. Diverses définitions sont données selon un ordre logique plutôt qu'alphabétique pour une meilleur compréhension.

Le noyau Linux visé est le 2.6.

OpenGL : (Open Graphic Library) est une spécification de graphique en 3D (trois dimensions) de SGI (Silicon Graphics, Inc.), descendant du produit anciennement nommé IRIS GL, compétiteur de Direct3D et QuickDraw3D (dépassé). Fréquemment abrégé "GL", particulièrement sous Linux, depuis que "OpenGL" est une marque déposée, et que l'utilisation de cette marque requiert d'être dans une zone (non-libre).

GLX : GL est un language pour le graphique, non un système de fenêtre. "GLX" réfère à une extension qui permet la communication de GL avec le système de gestion de fenêtre dans le but de permettre le rendu 3D dans X. GLX est une extension au protocole X. Il y a des extensions similaires pour d'autres systèmes de fenêtres comme - WGL sous Windows, AGL sous MacOS. Dans X, la librairie du côté client pour GLX se nomme libGL, et du côté serveur libglx.

Direct rendering (rendu direct) : Il y a deux façons pour qu'un logiciel qui utilise GL d'être rendu à l'écran. Soit le client fait le rendu lui même soit la requête est passée au serveur et celui-ci s'occupe du rendu. Le rendu côté serveur se nomme "indirect rendering" (rendu indirect), et côté client "direct rendering". Le rendu direct est habituellement plus rapide. Cela est particulièrement vrai avec Xorg, où le rendu côté serveur est entièrement fait logiciellement.

DRI : Pour "Direct Rendering Infrastructure" est une technologie qui permet l'utilisation de "direct rendering" pour les logiciels utilisant GL sous les systèmes d'exploitation Linux et BSD.

Mesa : Mesa est une implémentation de GL écrit par Brian Paul et une douzaines de contributeurs. Il contient un logiciel de traducteur par ligne (rasterizer), une machine d'état et de communication GL pour les gestionnaires de fenêtre incluant X et Win32. Tous les pilotes libres pour DRI sont basés sur Mesa ainsi que plusieurs autres à code source fermé.

Pilote DRI : C'est ici qu'est toute l'excitation. En effet, le pilote DRI est responsable de la programmation du matériel 3D. Habituellement les pilotes DRI utilisent la machine d'état de Mesa. Dans le DRI, la librairie GLX du côté client charge un pilote, nommé quelque_chose_dri.so.

Pilote DRM : Ceci est la composante de DRI du côté du noyau. Le DRM est responsable de la sécurité et la gestion des ressources. Il n'est pas particulièrement intéressant mais essentiel. Il y est nommé quelque_chose.ko dans Linux 2.6.

Pilote DDX : Ceci est la partie serveur X responsable des autres types de rendu comme Render et Xv. Le DDX doit être capable de fonctionner avec DRI, sinon il y a peu de relation avec GL.

AGP : AGP est une version rapide du bus PCI , avec des fonctionnalités supplémentaires pour le matériel graphique. La base de AGP est dans le module du noyau nommé agpgart.ko.

chipset AGP : Différentes cartes mères ont différents chipsets et ceux-ci nécessitent des implémentations des fonctionnalités AGP différentes. Vous devez avoir celui correspondant à votre matériel et ce n'est pas toujours la même chose que pour votre chipset de carte graphique. Exemple : Le chipset Via a besoin de via-agp.ko, etc.

Je n'arrive pas à installer openGL, comment dois-je faire ?

Pour le noyau

  • Un pilote DRM correspondant à votre carte vidéo
  • Du support AGP
  • Du chipset AGP correspondant à votre carte-mère

Pour la plupart des cartes les plus utilisées, les pilotes DRM sont disponibles et déjà installés à l'exception de 2.6.9-ish sur mach64 et savage. Pour ceci vous devez les construire à partir du CVS : http://dri.freedesktop.org/wiki/Building .

Tous les noyaux possèdent le support AGP.

Être certain que /dev/dri/card0 existe et qu'il est possible d'y écrire.

Pour l'utilisateur

Le pilote DRI Un DDX La librairie libGL

Mises à part les exceptions précédentes vous avez la partie utilisateur fonctionnelle.

Vous devez avoir les lignes suivantes dans Xorg.conf :

Load "dri" 
Load "glx"

Être certain que vous utilisez pilote DDX compatible avec DRI donc pas vesa ou fbdev.

Pour savoir si ça fonctionne faites la commande :

grep Direct /var/log/Xorg.0.log 

"Direct rendering enabled" devrait être affiché ainsi que "direct rendering: Yes" dans la commande :

glxinfo | grep direct
  • opengl.1247592953.txt.gz
  • Dernière modification: Le 18/04/2011, 14:57
  • (modification externe)