Xgl - Xgl

Xgl
Transparence Xgl.png
Compiz sur Xgl avec une vraie transparence
Auteur(s) original(aux) David Reveman
Première version 2 janvier 2006 ; il y a 15 ans ( 2006-01-02 )
Taper Serveur d'affichage
Site Internet web .archive .org /web /20070605230047 /http: //www .freedesktop .org /wiki /Software /Xgl

Xgl est une implémentation de serveur d'affichage obsolète prenant en charge le protocole X Window System conçu pour tirer parti des cartes graphiques modernes via leurs pilotes OpenGL , superposés à OpenGL . Il prend en charge l'accélération matérielle de toutes les applications X, OpenGL et XVideo et les effets graphiques par un gestionnaire de fenêtres de composition tel que Compiz ou Beryl . Le projet a été lancé par David Reveman de Novell et publié pour la première fois le 2 janvier 2006. Il a été retiré du serveur X.org au profit d' AIGLX le 12 juin 2008.

Histoire

Xgl a été développé à l'origine sur des listes de diffusion publiques, mais pendant longtemps, jusqu'au 2 janvier 2006, la plupart des développements de Xgl se faisaient à huis clos. Ce jour-là, les sources de Xgl ont été rouvertes au public et incluses dans freedesktop.org , avec une restructuration majeure pour permettre une plus large gamme de pilotes d'affichage pris en charge. Les backends de serveur X utilisés par Xgl incluent Xglx et Xegl . En février 2006, le serveur a fait l'objet d'une large publicité après une présentation publique au cours de laquelle l' équipe de bureau Novell a fait la démonstration d'un bureau utilisant Xgl avec plusieurs effets visuels tels que des fenêtres translucides et un bureau 3D rotatif. Les effets avaient d'abord été implémentés dans un gestionnaire composite appelé glxcompmgr (à ne pas confondre avec xcompmgr), désormais obsolète car plusieurs effets ne pouvaient pas être correctement implémentés sans une interaction plus étroite entre le gestionnaire de fenêtres et le gestionnaire composite. Comme solution, David Reveman a développé Compiz , le premier gestionnaire de fenêtres de composition OpenGL approprié pour le système X Window. Plus tard, en septembre 2006, le gestionnaire de fenêtres de composition Beryl est sorti en tant que fork du Compiz original. Compiz et Beryl ont fusionné en avril 2007, ce qui a donné lieu au développement de Compiz Fusion .

Backends

OpenGL ne spécifie pas comment initialiser un affichage et manipuler les contextes de dessin. Au lieu de cela, ces opérations sont gérées par une API spécifique au système de fenêtrage natif. Jusqu'à présent, il existe deux approches différentes pour résoudre ce problème d'initialisation. Très probablement, la majorité de chaque backend contiendra le même code et les différences se situeront principalement dans les parties d'initialisation des serveurs.

Xglx

Xglx a été le premier backend implémenté pour cette architecture. Il nécessite un serveur X déjà existant pour s'exécuter sur et utilise GLX pour créer une fenêtre OpenGL que Xgl utilise ensuite, similaire à Xnest . Ce mode est uniquement destiné à être utilisé pour le développement futur, car il est redondant d'exiger un serveur X pour exécuter Xgl par-dessus.

Lors de la XDevConf 2006 (la conférence de développement X de 2006), NVIDIA a fait une présentation en faisant valoir que c'était la mauvaise direction à prendre car le serveur en couches supprime les caractéristiques des cartes. Cela rend les capacités spécifiques au pilote telles que la prise en charge des lunettes 3D et la prise en charge de deux moniteurs beaucoup plus difficiles.

Cependant, la délégation de l'initialisation à un serveur X existant permet aux développeurs de se concentrer immédiatement sur les fonctionnalités du serveur plutôt que de consacrer un temps considérable aux spécificités de l'interfaçage avec de nombreux matériels vidéo. Pour le moment, Xglx ne prend pas officiellement en charge plusieurs moniteurs, bien que cela ait été réalisé sur Ubuntu Dapper / ATI / NVIDIA (twinview).

Xegl

Xegl était un objectif à long terme du développement du serveur X. Il partage une grande partie du code de dessin avec le serveur Xglx, mais l'initialisation du dessin OpenGL et la gestion du contexte sont gérées par l'API EGL développée par Khronos (EGL est un équivalent indépendant du système de fenêtre des API GLX et WGL, qui permettent respectivement Prise en charge d'OpenGL sous X et Microsoft Windows). L'implémentation actuelle utilise Mesa-solo pour fournir un rendu OpenGL directement au framebuffer Linux ou DRI au matériel graphique. Depuis juillet 2007, Xegl ne peut être exécuté qu'avec du matériel graphique Radeon R200 et le développement est actuellement au point mort. Il est probable que cela le restera jusqu'à ce que le serveur Xglx ait fait ses preuves et que les pilotes à code source fermé ajoutent le support de l'API EGL, alors qu'il devrait être un remplacement transparent pour le serveur Xglx imbriqué.

Raisonnement

Structurer tout le rendu au-dessus d'OpenGL pourrait potentiellement simplifier le développement de pilotes vidéo. Il supprime la séparation artificielle de l' accélération 2D et 3D . Ceci est avantageux car les opérations 2D sont souvent non accélérées (ce qui est contre-intuitif, puisque la 2D est un sous-ensemble de la 3D).

Il supprime également tout le code dépendant du pilote du serveur X lui-même et permet d'accélérer les opérations Composite et Render indépendamment du pilote graphique.

Concurrents

L'accélération matérielle des opérations de dessin 2D est une caractéristique commune à de nombreux systèmes de fenêtres (y compris X11) depuis de nombreuses années. La nouveauté de Xgl et des systèmes similaires est l'utilisation d'API spécialement développées pour le rendu 3D afin d'accélérer les opérations de bureau 2D. Avant l'adoption du dessin anticrénelé par X11, l'utilisation d'API de rendu 3D pour le rendu de bureau 2D n'était pas souhaitable car ces API n'offraient pas les garanties de rendu précises au pixel près qui font partie de la définition originale du protocole X11.

Le rendu de fenêtre et de bureau OpenGL accéléré par le matériel, limité à l'utilisation d'OpenGL pour la composition de texture, est utilisé dans Mac OS X, dans une technologie appelée Quartz Extreme , depuis Mac OS X v10.2 . Quartz 2D Extreme est une amélioration de cette fonctionnalité et plus directement comparable à Xgl. Comme Xgl, Quartz 2D Extreme apporte l'accélération OpenGL à toutes les opérations de dessin 2D (pas seulement la composition de bureau) et est livré avec Mac OS X v10.4 , mais est désactivé par défaut en attendant une déclaration formelle de préparation à la production. Core Animation est l'extension de cet effort pour Leopard ( Mac OS X v10.5 ).

Plusieurs interfaces de bureau basées sur des API 3D ont été développées, plus récemment OpenCroquet et le Project Looking Glass de Sun Microsystems [1] ; ceux-ci tirent parti de l'accélération 3D pour les logiciels construits dans leur propre cadre, mais ne semblent pas accélérer les applications de bureau 2D existantes rendues dans leur environnement (souvent via des mécanismes comme VNC ).

Microsoft a développé une technologie similaire basée sur DirectX , appelée DWM , dans le cadre de son système d'exploitation Windows Vista . Cette technologie a été présentée pour la première fois au public lors du PDC d'octobre 2003 de Microsoft.

Disponibilité

Depuis mai 2006, le Xgl X Server (et les composants associés, y compris le gestionnaire de composition Compiz et les outils de configuration graphique associés) est livré par défaut dans une distribution Linux majeure, SUSE 10.1, et est inclus dans Frugalware Linux ou SUSE Linux Enterprise Desktop 10. Xgl peut être configuré assez facilement pour Ubuntu 6.06 LTS (Dapper Drake) et 6.10 (Edgy Eft) et pour Freespire avec des packages binaires provenant de référentiels non officiels . Xgl est également disponible sous forme de paquet superposé dans Gentoo Linux , et en tant que PKGBUILD pour Arch Linux .

Mandriva Linux 2007 inclut des packages officiels pour exécuter Compiz , en utilisant Xgl et AIGLX . Mandriva fournit drak3d , un outil pour configurer un bureau 3D en deux clics.

Ubuntu 6.10 "Edgy Eft" et versions ultérieures utilisent AIGLX , pas Xgl, par défaut.

Xgl a été supprimé de X11R7.5 en 2009 car il s'agit d'une variante de serveur non maintenue.

Voir également

Les références

Liens externes