Ma vie rêvée

Aller au contenu | Aller au menu | Aller à la recherche

Comment marche X11/xorg et toute la clique ? 5° partie, AIGLX

Plan général

  1. Les bases, le rendu 2D
  2. Le rendu 3D direct
  3. Le rendu 3D indirect
  4. Composite et XGL
  5. AIGLX
  6. Suite et fin (ou comment ne plus avoir d'idée pour le titre)

Préambule

Cet article est basé sur ce que je comprend du fonctionnement de X11. Il est loin d'être parfait et comporte peut-être des erreurs. si c'est le cas, j'apprécierais qu'on me les signale pour pouvoir améliorer le tout.

AIGLX

dans l'article précédent, nous avons aperçu le fonctionnement de XGL qui est l'une des solutions proposée pour accélerer le rendu en utilisant la partie 3D de la carte graphique. A peu près au même moment, RedHat a développé une autre solution pour cette problématique, AIGLX, acronyme qui signifie Accélérated Indirect GL X.

Schéma de principe :
Principe de AIGLX

AIGLX est basé sur un principe complètement différent de XGL. Plutôt que de réinventer un serveur X, les développeurs ont préféré modifier celui existant pour lui permettre d'accélérer certaines opérations particulières à l'aide de la partie 3D de la carte graphique.
Ici, le gestionnaire de composition va s'adresser à la libGL en lui envoyant une instruction spéciale : GL_EXT_texture_from_pixmap. La libGL va alors transmettre cette instruction et ce qui va avec au serveur X par le biais de l'extension GLX. Le serveur X, quant à lui, va relayer le tout vers la partie 3D de la carte graphique.
On est donc bien en face d'un rendu 3D indirect qui passe par le serveur X, la différence avec le rendu indirect "classique" c'est que maintenant, celui-ci est accéléré par la carte 3D et profite de sa puissance.
La gestion de la composition implique certes des aller-retours entre le gestionnaire de composition et le serveur X mais quelques optimisations du protocole permettent d'éviter que cela surcharge trop le système : les manipulations avant le rendu sont effectuées par le serveur X sur ordre du gestionnaire de composition, ainsi, seule les informations de manipulations sont à transmettre, les données ne sont transmises qu'une seule foi.

Les avantages de ce modèles, c'est que le rendu direct est toujours possible pour les applications qui le demandent. L'autre avantage, c'est que d'après la théorie, la transparence réseau est toujours là y compris lorsque l'on utilise la composition.
Le défaut, c'est que contrairement à XGL, ici seule certaines opérations sont accélérées, le reste des opérations continue à utiliser le schéma 2D classique.

Au contraire de XGL, le développement d'AIGLX s'est fait de manière totalement ouverte et AIGLX a été inclu dans Xorg 7.1.

Bibliographie

Commentaires

1. Le jeudi 23 novembre 2006, 20:57 par gnumdk

Quelques petites remarques:

>Au contraire de XGL, le développement AIGLX s'est fait de manière totalement ouverte

Il convient de modérer ce propos, GL_EXT_texture_from_pixmap a été créer par Nvidia et
David Reveman. Aiglx repose donc en grande parti sur le travail de David donc Xglx n'est qu'un programme de test pour GL_EXT_texture_from_pixmap.