• [^] # Re: Le rôle de Mesa

    Posté par . En réponse au journal OpenGL 6.5.3 is out. Évalué à 6.

    Mesa ne peut etre competitif avec une acceleration materiel meme avec les cpus actuelle. Seul, peut être, les processeurs cell peuvent rendre utilisable cette approche logiciel. Il y a plusieurs raison a cela :

    - Les cartes graphiques sont capables de traiter plusieurs pixels en même temps avec des opérations complexes et particulière (typiquement des groupes de 64 ou 128 pixels, nvidia allez jusqu'a 1024 me semble t-il mais ce n'étaient pas un bon choix) un CPU lui ne pourra pas traiter autant de pixel aussi efficacement même avec les instructions "multimedia". En effet l'agencement mémoire sur la carte graphique et l'architecture autour permet d'optimiser les access sur ces groupes de pixels alors que pour le cpu le plus souvent on a des cache miss et on ne peut avoir une organisation aussi sioux que pour le gpu.

    - Les cpu ne sont pas tres efficaces pour des opérations comme le blending de pixel a moins de faire des routines tres optimisées.

    - Mesa ne cherche pas a optimiser aux maximums son rendue software principalement car c'est irréaliste. En effet il faudrait écrire en asm chaque combinaison possible de rendu et il y en a plusieurs milliers voir une infinité si l'on considère les vertex et pixel shader. Donc mesa s'intéresse plus a avoir une pipeline software la plus proche des spécifications opengl (je crois que certains professionnel se sert du rendu de mesa comme référence).

    - Enfin le rendu dans les résolutions actuelle demande de deplace des dizaines de mega octect de mémoire a chaque frame et l'architecture de nos machines n'est pas la plus optimise pour ca.


    Voila pourquoi mesa ne représente pas une solution fonctionnel pour le rendu en software de bureau 3d. Mais mesa est utilisées par tout les pilotes 3d graphiques libre sous linux; effectivement rare sont les cartes qui implémentent l'ensemble d'opengl aussi beaucoup de fonction de l'opengl sont laisse a la charge de mesa.

    Mesa est aussi utilise pour tester des idées en software de protocole ou extension opengl qui pourrait être utile. Il est aussi probablement utilise dans plusieurs application professionnel qui ne peuvent se contenter du rendu des cartes graphiques. Bref je ne pense pas que l'on puisse facilement dresser une liste exhaustive de ses utilisations. Mais il reste un composant clef de l'accélération matériel sous linux ou netbsd, il s'agit tout simplement du centre névralgique par ou tout passe pour l'opengl. C'est pourquoi chaque amélioration qu'il subit a de grande chance d'améliorer les drivers libres de manière indirect.

    Et le but de ce projet c'est simplement de proposer une implémentation d'opengl en software la plus conforme possible ainsi que de fournir une infrastructure pour l'accélération matériel d'opengl. A ma connaissance c'est la seul implémentation aussi complète d'opengl en software, il s'agit vraiment d'un travail énorme.