Accueil🇫🇷Chercher

Gallium3D

Gallium3D est un projet de logiciel libre d'accélération 3D, commencé en 2007 il a pour but de remplacer, au sein de Mesa 3D, les anciens pilotes trop complexes en amenant une compatibilité avec les versions plus récentes d'OpenGL, une architecture plus adaptée aux cartes 3D modernes, en simplifiant le développement des pilotes de périphériques et enfin, en apportant un contrôle plus direct entre l'application et le matériel et une architecture plus indépendante du système, des pilotes se chargeant de s'adapter au système hôte (typiquement winsys et screen).

Il devait initialement remplacer à terme Mesa 3D, mais en reste un sous-ensemble décliné en plusieurs architectures, afin de conserver l'ensemble des pilotes déjà disponibles et non portés.

Principes

Gallium 3D utilise un ensemble de modules interagissant entre eux et avec l'écosystème qui l'entoure. Ces modules sont divisés en trois catégories, les State trackers (suivi d'état), modules auxiliaires et pilotes.

State Tracker

Les « State Trackers Â» font la liaison entre Mesa et Gallium3D en convertissant les Ă©tats (mode de mixage, Ă©tat des textures, etc.) et appels de fonction (glDrawArrays, glDrawPixels, etc.) de Mesa en opĂ©ration et objet du « pipe Â» de Gallium3D. LLVMpipe est prĂ©sentĂ© dès 2007 dans le but d’accĂ©lĂ©rer efficacement le calcul sur une architecture sans accĂ©lĂ©ration matĂ©rielle 3D[1].

Si des fonctions d'anciennes versions d'OpenGL (1 & 2) sont utilisées, tentant d'accéder directement au rendu, elles sont d'abord converties en shaders, afin de décharger ensuite le travail aux accélérateurs dédiés.

Modules auxiliaires

  • Module Draw (tracĂ©), permet d’appeler des fonctions de tracĂ©s sur les puces graphiques n'ayant pas les fonctions modernes de shaders.
  • Module TGSI, reprĂ©sentation interne et intermĂ©diaire du langage d'ombrage (shader).
  • Module RTASM, module de conversion en assembleur Just-in-Time.
  • Module CSO, pour « Constant State Objects » (objet Ă  Ă©tat constant), permet de filtrer les objets ne changeant pas d'Ă©tat et d'Ă©viter ainsi de les retransmettre au processeur graphique. C'est un des points qui aura rĂ©volutionnĂ© l'industrie graphique, montrant qu'il est possible d'Ă©conomiser CPU et bande passante, et inspirĂ© OpenGL Next.
  • Module util' (utilitaire), permet de dĂ©boguer, des manipulations d'image et diffĂ©rentes fonctions d'aide frĂ©quentes.

Pilotes

Les pilotes sont chargés de communiquer avec le matériel. Il peut s'agir de matériel dédié à l'accélération graphique, du type GPU, ou bien du microprocesseur principal et de ses SIMD, comme dans le cas de LLVMpipe.

Équivalence Mesa3D et Gallium3d

différence entre le pilote Gallium 3D et le pilote DRI

Les principales Ă©quivalences entre les pilotes Mesa « Classique » (classic Mesa) et Gallium3D Ă  l'automne 2014 en fonction des systèmes choisis[2] :

Gallium 3D Mesa3D classique
xorg + exa DDX + Xv
dri + mesa GL + GLSL
dri DRI2
KMS + Gallium3D DRM + DRI + DDX

Historique

Ce projet a débuté en 2007 ; il est intégré au Git de Mesa 3D.

En janvier 2008, les pilotes pour les puces Intel i915 étaient pratiquement complets, les pilotes pour les puces Intel i965 commençaient, et la première version du pilote pour le processeur Cell (utilisé entre autres dans la console Sony PlayStation 3) permettait déjà de faire des rendus simples.

Le projet Gallium3D est principalement géré par la société Tungsten Graphics (rachetée par VMware en novembre 2008[3]) qui avait déjà développé les pilotes pour les cartes ATI à architecture R200 pour Mesa 3D.

En février 2008, le passage à DRI2 de Mesa est accompli avec la gestion de la mémoire autrefois gérée par le pilote DRI du serveur X gérée dorénavant par le pilote noyau DRM (Direct Rendering Manager). Les différentes cartes gérées dans Mesa sont rapidement portées vers la nouvelle architecture apportant plus de stabilité et de sécurité à la gestion de la 3D.

Le même mois, ATI dévoile enfin les spécifications d'une grande partie de ses puces graphiques, comme promis quelques mois auparavant par AMD, permettant une avancée majeure sur les pilotes r300 (architectures R300 à R520) dans l'accélération 3D.

En 2014, le projet LLVMpipe, qui offre une nouvelle approche en compilant à la volée, via LLVM, les langages des shaders pour un rendu logiciel, est activé par défaut dans Mesa 3D et améliore nettement ses performances.

Notes et références

  1. (en) « Gallium3D LLVM »,
  2. (en) « Current Status of Gallium3D Pipes and State Trackers », x.org, (consulté le )
  3. David Marshall, « VMware's year end acquisition of Tungsten Graphics », sur InfoWorld (consulté le )

Voir aussi

Articles connexes

Liens externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.