Xgl

Aller à : navigation, rechercher
Icon-obsolete.png Cet article fait référence à la version '{{{1}}}' et il est maintenant obsolète !
Référez-vous à la page de discussion pour plus de renseignements.
XGL a été remplacé par AIGLX qui est activé par défaut à partir d'openSUSE 11.0...

Introduction

Cube - Changement de bureau par rotation d'un cube 3D pendant la lecture d'un film en haute résolution plié sur l'arête du cube

Xgl est un serveur X libre surcouche de l'OpenGL. Xgl peut effectuer des opérations graphiques complexes, comme l'anticrenelage des polices beaucoup plus rapidement que les autres serveurs X n'utilisant pas l'OpenGL. L'implémentation actuelle est l'Xglx mais l'implémentation future sera Xegl.

Plus important que la vitesse seule, Xgl accélère les opérations composées complexes en rendant possible des effets visuels stupéfiants grâce à un gestionnaire de fenêtre propulsé par l'OpenGL tel que Compiz. Ces effets visuels ont une large application pratique comme rendre Linux plus accessible aux déficients visuels ou encore créer une zone de travail plus simple à comprendre et où la navigation est aisée pour les utilisateurs inexpérimentés.

Xgl doit être utilisé avec un gestionnaire de fenêtre pour exploiter toutes ses capacités. Compiz est le gestionnaire développé en parallèle d'Xgl.

Dans le futur, il est possible que le matériel graphique ne supportera plus que les opérations 3D, sans intégrer la 2D. C'est pourquoi Xgl est une avancée importante pour tous les systèmes d'exploitation qui se fondent sur la base graphique X.org.

Xgl dans l'OpenSource

Début 2006, David Reveman, le développeur d'Xgl, a dévoilé ses plus récentes innovations pour Xgl et Compiz en vue de leur inclusion dans le dépôt CVS de freedesktop.org. Aujourd'hui, freedesktop.org héberge le code source des paquets d'Xgl.

Utiliser Xgl/Compiz

Pour savoir comment utiliser Xgl sous SUSE Linux, lisez le bulletin d'information de SUSE à propos d'Xgl. Pour des informations à propos du gestionnaire de fenêtre, veuillez lire la page consacrée à compiz. Si vous rencontrez des problèmes d'exécution, regardez la page consacrée à la résolution des problèmes avec Xgl.

Foire aux questions (FAQ)

  • Est-ce que je peux utiliser mon gestionnaire de fenêtre favori avec compiz?
    Non, compiz est un gestionnaire de fenêtre, un seul peut être lancé à la fois. Comme le composite manager et le gestionnaire de fenêtre sont deux concepts distincts, pour la plupart des effets ces deux processus doivent être intégrés étroitement, ce que vous obtenez avec les compositing gestionnaires de fenêtre comme compiz.
  • Et à propos de glxcompmgr.rpm et xglx.rpm alors?
    glxcompmgr est obsolète, de même pour xglx.
  • Le Direct rendering ne fonctionne pas quand Xgl est lancé, mais il fonctionne avec Xorg. Pourquoi les applications OpenGL ne sont plus accélérées?
    Ne mélangez pas l'accélération matérielle et le direct rendering. Les applications OpenGL seront accélérées matériellement avec Xgl si le pilote le supporte pBuffers ou FBOs, comme le font les pilotes nvidia et fglrx. D'un autre côté, le Direct rendering est impossible à implémenter pour l'instant, les extensions nécessaires pour cela n'étant même pas encore spécifiées actuellement.
    Le direct rendering implique une accélération matérielle, mais l'inverse n'est pas vrai. Le Direct rendering est un peu plus rapide que l'Indirect rendering, mais celui-ci n'est pas si mauvais.
    Le Direct rendering est actif si le résultat de la commande glxinfo|grep direct dans une console lancée sous Xorg (pas Xgl!) vous retourne "Yes". Avec Xgl, la réponse sera toujours négative. Malheureusement, sous Xorg, le Direct rendering est un synonyme d'accélération graphique et il est plus difficile de détecter si l'accélération matérielle et disponible que de détecter le Direct rendering.
  • Est-ce que je peux placer un bureau sur le sommet et la base du cube?
    Non, cela n'a aucun sens, car il ne s'agit pas d'un cube à proprement parler. En effet, les faces latérales constituées par vos bureaux sont rectangulaires, et les faces du sommet et de la base sont carrées, ce qui impliquerait des bureaux d'un aspect différent. Cela voudrait aussi dire que vous pourriez avoir une vue retournée de votre bureau selon la manière dont vous tournez le cube. Pas très pratique... Par contre, si vous désirez augmenter le nombre de bureaux, vous pouvez facilement ajouter des faces latérales au "cube" avec l'option apps/compiz/general/screen0/options/size.
  • Comment utiliser plusieurs écrans avec Xgl?
    Xgl et compiz ne supportent pas l'extension Xinerama pour l'instant, mais le travail est en cours.
    Bien sûr, Xgl fonctionne avec des merged framebuffer setups, mais il ne trouvera pas les différents écrans. Par exemple, l'écran de connexion sera divisé entre les deux écrans.
  • Est-ce que tout ceci fait partie de Xog 7?
    Non, Xgl est développé par la communauté Xorg, mais sur une branche différente. La liaison se fera probablement après la sortie de Xorg 7.1.
  • Comment activer l'option Composite dans le fichier de configuration?
    Pas besoin. Xgl supporte Composite nativement, la sous-couche Xorg n'a pas besoin d'exporter le Composite. C'est important pour le pilote Nvidia, qui a toujours des problèmes avec le fonctionnement simultané de OpenGL et Composite.
  • Comment se débarrasser des horribles artefacts?
    C'est un problème complexe qui doit être abordé sous plusieurs angles. Comprenez : cela doit encore être expliqué, écrit et résolu.

Données techniques

Xgl et compiz ont tous les deux été majoritairement créé par David Reveman (Novell) aidé par Matthias Hopf (SUSE). Dave Arlie, Adam Jackson (Red Hat) et Jon Smirl ont travaillé sur Xegl, Xgl en version autonome. (non développé ici mais lié à Xgl). Xgl utilise l'API glitz comme couche d'abstraction qui a été conçu et mis en application par David Reveman et Peter Nilsson (UMU).

Xgl est la base de plusieurs varaintes, avec comme principale : glx (aussi appelé Xglx) étant pour le moment la principale force d'entrainement du developpement du projet. Xglx fonctionne dans une fenêtre sur un serveur X (Xserver) standard (comme Xnest) qui fournit le support necessaire à l'OpenGL. Il existe un "commutateur de plein écran" pour créer une unique fenêtre en plein écran. On doit aussi fournir un nom d'affichage qui n'est pas celui du serveur X original. Une autre variante appelé Xegl permet de faire fonctionner Xgl directement sur le "framebuffer". Cependant, il est, pour le moment, loin d'être complet et ne fonctionne que sur les cartes graphiques basées sur l'ATI R200 sous linux.

Etant donné que Xgl, avec glx ne peuvent pas fonctionner seuls, il sera automatiquement lancé un serveur Xorg en dessous. La configuration apr defaut de SUSE utilise l'affichage : 93 pour cela. Seul Xgl sera autorisé à converser avec le serveur Xorg et créer l'affichage : 0 pour toutes les autres applications.

Conseils sur le matériel

Les cartes graphiques suivantes sont recommandées pour l'utilisation d'Xgl ou sont connues pour leur bon fonctionnement avec Xgl.

  • Intel
    Tous les chipset Intel requièrent les derniers paquets d'Xgl et de compiz pour fonctionner sans problèmes.
    • i915, i945
      Accelerated XVideo est défectueux sur ces cartes. Regardez l'article dépannage Xgl.
  • NVidia
    Toutes les cartes Nvidia demandent le pilote propriétaire pour pouvoir lancer Xgl. Instructions d'installation sur la page nVidia du wiki. Actuellement, vous devez désinstaller puis réinstaller le paquet Xgl après avoir installé ce pilote propriétaire.
    • GeForce 4xxx series
      XVideo n'est pas accéléré sur ces cartes.
    • GeForce FX 5xxx series, Quadro FX series
      Accelerated XVideo est lent sur ces cartes; c'est en cours d'investigation.
    • GeForce 6xxx series
    • GeForce 7xxx series
  • ATI
    • Mobility Radeon 9700 SE: Xgl fonctionne avec le pilote propriétaire fglrx 8.23
    • Radeon X300: Xgl fonctionne avec le pilote propriétaire fglrx 8.23

Si vous ne savez pas quelle carte graphique vous possédez, vous pouvez lancer la commande suivante (en tant que root) : hwinfo --gfxcard

Pour une liste plus complète, jetez un oeil sur cette liste matérielle Gentoo

Matériel problématique

Voici une liste de matériel connu pour des problèmes ou des incompatibilités :

  • ATI
    • Mobility Radeon M6 LY (7000), Mobility Radeon M9 (9000) et Mobility Radeon M9+ (9200)
      Artefacts et clignotements occasionnels.
    • Radeon 9200
      Pas d'accélération matérielle avec le pilote fglrx 8.22.5
    • Radeon XPRESS 200M 5955 (PCIE), Pilote "fglrx_pci" : Xgl fonctionne mais les fichiers 2D/3D ne fonctionnent pas correctement (jeux 2D/3D, vidéos plein écran, etc...).
  • Intel
    • i855GM
      Fonctionne, mais les effets sont de manière générale très lents.
    • i815, i845
      Trop vieux, Xgl fonctionne mais compiz non. Peut-être qu'une couche de compatibilité sera ajoutée plus tard.

Liens externes