# Xgl

Xgl est un serveur X libre surcouche de l'OpenGL via Glitz, permettant d'utiliser les capacités 3D des cartes graphiques modernes dans un environnement bureautique traditionnel, rendant ainsi possibles des effets d'affichage tels que la transparence, les rotations de fenêtres, les ombrages, etc.
Xgl est basé sur X.Org et le développement a été démarré par David Reveman.
Xgl et AIGLX échangent du code afin d'assurer une compatibilité et une progression plus rapide.

## Historique

En mai 2005, Xgl était toujours à un stade de développement précoce et un nombre important de fonctionnalités étaient toujours manquantes, mais cela a bien progressé depuis 2005. Beaucoup de travail a été fait à huis clos, les sources furent libérées le 2 janvier 2006, et incluses dans le projet freedesktop.org, avec des restructurations majeures pour permettre l'utilisation d'un plus grand nombre de pilotes de cartes graphiques.
Le serveur X sous-jacent utilise Xglx ou Xegl. En février 2006, le serveur a obtenu une large publicité après une présentation publique où l'équipe « Desktop » de Novell fit la démonstration d'un bureau avec de nombreux effets visuels tels que des fenêtres transparentes et un bureau 3D sur lequel on peut effectuer des rotations.
Les effets graphiques furent d'abord implémentés à l'aide du gestionnaire composite appelé glxcompmgr, mais celui-ci est maintenant déprécié car de nombreux effets ne peuvent pas y être implémentés efficacement sans avoir des liens trop serrés entre le gestionnaire de fenêtres et le gestionnaire composite. Au lieu de cela, un premier gestionnaire de fenêtres composite utilisant OpenGL pour le rendu a été développé par David Reveman : il est appelé compiz. C'est le gestionnaire composite qui fournit les effets graphiques, le serveur Xgl implémentant une extension OpenGL supplémentaire afin d'accélérer le développement d'un composite manager effectuant son rendu en OpenGL.
Xgl/Compiz est accessible, stable et inclus par défaut dans une distribution depuis juillet 2006 (SUSE Linux).
En octobre 2006, Xgl/Compiz est inclus, évidemment dans la SUSE Linux Enterprise Desktop 10 de Novell, étant à l'initiative de la technologie, mais également dans la distribution Mandriva 2007 ainsi que dans la (K)Ubuntu 6.10.
Xgl, retiré des sources de X.Org en juin 2008, n'est plus disponible depuis la version 7.5 de ce dernier.

## Xglx

Xglx fut la première implémentation de cette architecture, c'est aussi celle qui a eu la plus grande part du développement pour le moment. Cette implémentation requiert un serveur X déjà fonctionnel au-dessus duquel Glx peut fonctionner. Dans le futur, ce mode de fonctionnement sera seulement prévu pour être utilisé en développement.
Au XDevConf 2006, la société NVidia fit une présentation, argumentant que ce type d'implémentation va dans une mauvaise direction, car le serveur étant découpé en couches, l'abstraction des capacités des cartes graphiques ne permettra plus d'utiliser des fonctionnalités spécifiques de celles-ci.

## Xegl

Xegl est le futur de Xgl et son développement à long terme. Il devrait simplifier le développement de pilotes vidéo et ne plus faire de séparation entre accélérations 2D et 3D. Il supprime également la dépendance aux pilotes pour les serveurs X.

## Autres systèmes similaires

L'accélération matérielle pour un bureau 2D a déjà été réalisée avec Mac OS X 10.2 en 2002 avec la technologie Quartz Extreme, en présentant les éléments de l'écran comme étant des textures dans un contexte 3D en OpenGL.
Sun a également réalisé Projet Looking Glass en 2003.
Une technologie équivalente, Aero (basée sur Direct3D à la place de l'OpenGL) est sortie avec Windows Vista en novembre 2006.

## Polémique

Le projet est sujet à polémique car il utilise les performances des cartes graphiques 3D qui fonctionnent souvent à l'aide de pilotes propriétaires (nVidia et ATI). En effet, les fabricants de cartes graphiques propriétaires ne publient pas les spécifications de leurs cartes (leur fonctionnement interne) rendant ainsi quasiment impossible le développement de pilotes libres. Cependant un certain nombre de cartes graphiques (ATI jusqu'à la X300, Intel) possèdent des pilotes libres et permettent d'utiliser l'accélération 3D de la carte sans installer de pilote propriétaire.

## Avantages / Inconvénients

Avantages :
* Fonctionne avec quasiment toutes marques de cartes graphiques (récentes, si possible).
* Pour la gestion de bureaux 3D, certains pilotes graphiques ne peuvent gérer que Xgl, c'était le cas du pilote propriétaire ATI (fglrx) jusque fin 2007.
* Pour l'utiliser, il n'y a pas besoin d'éditer de fichier de configuration (même xorg.conf).
Inconvénients :
* Xgl est une surcouche du serveur graphique X.org, il diminue donc les performances d'un programme d'effets 3D (comme Beryl ou Compiz).
* Xgl ne permet pas de lancer deux programmes utilisant la 3D, c’est-à-dire que l'utilisation de Beryl ou de Compiz rend impossible l'exécution de jeux 3D. Il faut dans ce cas séparer Xgl en créant une session spéciale (cela dépend de la carte ou de la version d'Xgl).
* Xgl n'est pas intégré dans le pilote graphique, il demande de l'espace disque, 11 Mo environ.