GLX
# GLX

GLX (OpenGL Extension to the X Window System, en français « Extension OpenGL pour le serveur X ») est une API créée en 1992 et fournissant la connexion entre OpenGL et le serveur X : il permet aux programmes qui souhaitent utiliser OpenGL de le faire dans une fenêtre fournie par le serveur X.

La dernière version est la version 1.4, sortie le 16 décembre 2005. Elle a été proposée à la déprécation en ce qui concerne X.org en 2012 par Ian Romanick en faveur d'EGL, qui à l'avantage de faire un rendu direct, plutôt qu'indirect et d'être indépendant de la plateforme, tout en permettant une portabilité facile de GLX vers EGL. D'autre part, GLX nécessite une association du pilote d'un fabricant avec le serveur X, il n'y a pas moyen d'en associer plusieurs. EGL étant indépendant du serveur X, il est possible d'utiliser plusieurs contextes EGL utilisant des GPU de différents fabricants sur le même serveur X11.

GLX est constitué de trois parties :

* Une API, laquelle fournit les fonctions OpenGL à une application tournant sur le serveur X ;
* Une extension du protocole X, qui autorise le client (l'application OpenGL) à envoyer des commandes de rendu 3D au serveur X (l'application responsable de l'affichage), lequel pouvant éventuellement tourner sur un autre ordinateur ;
* Une extension du serveur X qui reçoit les commandes de rendus du client et qui les envoie à la carte graphique (lorsque c'est possible), ou éventuellement utilise un rendu logiciel (généralement avec la bibliothèque Mesa, qui est beaucoup plus lente).

Dans le cas où l'application cliente et le serveur sont situés sur la même machine, et que cette dernière est équipée d'une carte graphique capable d'accélérer le rendu 3D, les deux derniers points peuvent être effectués par le DRI. Celui-ci permet au client d'accéder directement au matériel responsable de l'affichage sans passer par le serveur X, et de ce fait est plus rapide. Ce système reste totalement transparent du point de vue du développeur de l'application client.

La commande « glxinfo » permet d'obtenir des informations sur l'implémentation de GLX de la machine client et de la machine serveur, telles que les numéros de version, les extensions supportées et les modes d'affichage disponibles.

GLX, ainsi que le DRI et Mesa, font partie de X.Org — implémentation libre de X Window — depuis la version X11R6.7.0, et de XFree86 (autre implémentation libre) depuis la version 4.0.

