Journal AIGLX : une autre façon d'accélérer votre bureau avec OpenGL

Posté par  (site Web personnel) .
Étiquettes : aucune
0
21
fév.
2006
Après Compiz et Xglx, l'implémentation XGL s'exécutant dans une fenêtre par dessus le serveur X actuel, présentés par Novell au salon Solutions Linux, et Xegl une implémenation de XGL par dessus EGL (un équivalent indépendant de la plate-forme aux API OpenGL GLX/AGL/WGL) ne fonctionnant que sur les puces R200, voici que Fedora propose AIGLX , qui à première vue semble moins ambitieux que XGL.

AIGLX signifie : « Accelerated Indirect GL X » :
http://fedoraproject.org/wiki/RenderingProject/aiglx
AIGLX fait partie du « Fedora Rendering Project's » :
http://fedoraproject.org/wiki/RenderingProject/

AIGLX est un projet qui permettra des effets OpenGL accélérés sur un bureau standard. Le serveur X a été légèrement modifié (il inclut quelques extensions), un paquet MESA mis à jour de qui ajoute le support de certains nouveaux protocoles et une version de metacity avec un composite manager. Le résultat final vous permet d'utiliser des effets OpenGL sur votre bureau avec très peu de changements, avec la possibilité des les activer ou de les désactiver, et vous n'avez pas à remplacer votre serveur X.

Cela fonctionne sur ATI Radeon 7000 à 9250 (générations R100 à R200) et les Intel i830 à i945 et peut-être sur Intel i810, et sur les Voodoo 3 à Voodoo 5.

Accelerated Indirect GL X de Kristian Høgsberg (Red Hat) XDevConf 2006 :
http://freedesktop.org/~krh/aiglx.pdf

Sur la page du projet AIGLX écrite par Jonathan Blandford de Red Hat, AIGLX est vu comme un changement plus progressif qui deviendra une partie de Xorg et que le remplacement intégral du serveur X n'est pas la bonn solution. La page pointe sur les notes Adam Jackson de Red Hat : « large work for Xgl » :
http://people.freedesktop.org/~ajax/xdc2006-notes.txt
Ou encore les présentations de NVidia sur l'utilisation du modèle existant :
http://download.nvidia.com/developer/presentations/2006/xdev(...)
http://download.nvidia.com/developer/presentations/2006/xdev(...)

A lire aussi :
« Deconstructing X Server Configuration » de Adam Jackson (Red Hat):
http://people.freedesktop.org/~ajax/xdc2006.pdf
  • # ????

    Posté par  (site Web personnel) . Évalué à 9.

    Ca commence à devenir très compliqué ces histoires de serveurs X OpenGL !
    Entre Novell qui fait ses demos de XGL , Red Hat qui réplique en dégainant AIGLX, Mandriva qui refuse XGL et en pince pour Xegl ( http://lwn.net/Articles/171846/ ) c'est complètement imbitable.

    Va encore falloir attendre 2 ans pour que la poussière retombe et qu'un vainqueur emerge ? Et si ce vainqueur est un enième patch sur le serveur X je sais pas si ça tiendra la comparaison avec les interfaces 3D d'OSX et de Vista.
    • [^] # Re: ????

      Posté par  (site Web personnel) . Évalué à 8.

      Moi j'ai tendance à croire à ce que je vois comme St Thomas, et tout ce que je sais, après avoir installé un XGL + Compiz sur ma Dapper Drake, c'est que bien qu'expérimental, c'est tout-à-fait exploitable et fonctionnel.
      Alors si je devais prendre les paris sur le "vainqueur", je crois que j'ai déjà mon petit poulain ;)
      • [^] # Re: ????

        Posté par  (site Web personnel) . Évalué à 1.

        Moui je penses que la règle du "premier arrivé premier servi" va beaucoup aidé
        Tous ceux que les bureaux 3D intéresse ont testé Xgl+compiz avec tout le boucan qu'on a fait dessus...., et ils voient émergé d'autres solutions, (à vrai dire d'autres existaient encore avant (metisse, lg3d surement d'autre) mais pour une raison qui m'echappe personne n'en voulait (et certainement pas un pb de compilation,vu le bordel à compiler Xgl), donc je disais d'autres solutions émerges, alors ils vont peut être en essayer une 2° mais qqu qui en teste 3 ca devient rare et donc le 1° est privilégié
        (bon apres si y en a bcp plus mieux que Xgl arrive je dis pas, mais bon à part un patch déjà pres pour KDE qui s'interface super bien et des applis qui exploitent (remarque LG3D a ca et euh bon c'est pas les foules qui tombent dessus)

        PS:Moi je fais du lisp sans le savoir? Vous croyez?
        • [^] # Re: ????

          Posté par  . Évalué à 4.

          mouais, je pense surtout que c'est le choix des distribs qui va determiner qui va "gagner".
          Et ca ca va dependre des querelles de clans, de la complexite a packager/configurer, de la licence et eventuellement de la qualite du serveur et du confort gagne.

          Un peu comme pour Xorg, avec un truc aussi gros et chiant a deployer, c'est les distributions qui decident qui vit et qui meurt.
        • [^] # Re: ????

          Posté par  . Évalué à 6.

          Je pense surtout que ça dépend des développeurs.

          Si j'ai bien tout compris, xgl était déjà sur les rails quand Novell a fait son fork en embauchant certains mais pas tous les anciens développeurs de xgl. Du coup, les autres l'on mal pris et il me paraît clair qu'ils vont moins (voir pas du tout) s'impliquer dans le projet xgl façon Novell. C'est d'autant plus le cas que certains choix technologiques seraient contestés.

          D'un autre côté, aiglx était en développement depuis plus longtemps et a progressé avec la communauté xorg. Il me paraît donc évident qu'ils ont énervé beaucoup moins de monde.

          Je ne suis absolument pas qualifié pour donner un avis technologique sur les choses. Il est évident que les distributions auront leur mot à dire. Mais si aiglx, parce qu'il est mieux conçu et qu'il a moins énervé attire plus de développeurs que xgl, c'est certain que c'est lui qui restera.
      • [^] # Re: ????

        Posté par  (site Web personnel) . Évalué à 5.

        >> un XGL + Compiz sur ma Dapper Drake, c'est que bien qu'expérimental, c'est tout-à-fait exploitable et fonctionnel.

        Certes. Mais d'après ce que j'ai compris c'est une surcouche du serveur Xorg. Sur un plan technique c'est pas un peu génant d'empiler les couches sans arriver à se mettre d'accord sur une refonte globale logique ? Est-ce que ce n'est pas la solution de facilité, le chemin de moindre résistance, un optimum local néfaste à long terme ?

        Apple avec Quartz et Microsoft avec Aero ont jeté aux orties leurs anciennes interfaces et partent sur de nouvelles bases...je constate que dans le monde du libre personne n'est d'accord sur la vision à long terme (normal c'est libre) ni n'est capable d'imposer sa vision aux autres (normal c'est libre).
        Si dans 12 mois on est tous avec XGL+Compiz et un serveur X qui mouline en dessous je sais pas si on devra vraiment s'en réjouir.
        • [^] # Re: ????

          Posté par  . Évalué à 4.

          Pourquoi ? Si ca fonctionne partout et que c'est pas lent, moi utilisateur final je m'en tamponne que ca soit une "surcouche".

          Je préfère une "surcouche" qui marche (XGL fait ses premiers pas et déjà on a un certain nombre de retours complètement positifs) qu'une hypothètique refonte dont je ne sais ce qu'elle m'apportera, à moi-utilisateur.
          • [^] # Re: ????

            Posté par  (site Web personnel) . Évalué à 2.

            Et qui risquerait de mettre du temps avant d'arriver...
            Au fond c'est vrai les problèmes de performances on commencent un peu à s'en tamponner (désolé pour les vieilles carcasses mais bon voila)
            Vu les bêtes des courses qu'on a maintenant...
            Et pis pour une fenêtre qui est en overlay en fait le serveur X doit consommer mmmmm 10Mo à tout casser (oui je suis pessimiste)
            Les appels OpenGL ont un intermediaire supplémentaire.... moué bon on est plus à ca pret je penses (on doit avoir mmmmm 5 intermédiaires à vue de nez entre l'appli et la carte graphique)
        • [^] # Re: ????

          Posté par  (site Web personnel) . Évalué à 2.

          C'est vrai que Xgl ca fait une fenêtre OpenGL pour le serveur "maitre" (on va dire) donc c'est un peu balot on va dire
          Mais y a Xegl qui a une API compatible sans utiliser X
          Enfin bon y a aussi Xgl en module ddx (De ce que j'ai compris c'est un module qui controles toutes les I/O du serveur X, mais bon j'en sais pas plus), comme ca y a qu'un seul serveur X

          Enfin le gros problème de ne plus se baser sur un serveur X c'est les drivers
          La marque de cartes graphiques 3D "utilisable" (pour les bureaux 3D) actuellement la plus utilisée sous Linux ca doit être Nvidia vu que jusqu'à recement c'était la seule à avoir des drivers décents
          Bon avec les drivers r300 ca va peut être changer (et intel pourquoi pas, mais comme c'est de l'interne je sais pas trop), mais bon tant qu'on sera bloqué par cette dépendances sur nvidia...
          Ou alors faudrait que qqu se mette à réécrire le driver X nvidia et la libGL fournie par nvidia en utilisant le module noyau
          Enfin je dis ca mais bon faut être patient pour réussir à faire un truc qui ressemble à quelquechose je penses :)
          Ne serait-ce que voir tourner un cube doit être marrant...
        • [^] # Re: ????

          Posté par  (site Web personnel) . Évalué à 4.

          Salut,

          Le futur d'XGL est Xegl qui n'utilise plus de sous serveur graphique. C'est un peu comme le travail du portage du Hurd sur L4, on travaille actuellement sur les couches du dessus en sachant que la couche du dessous s'appuira sur autre choses (mais on peut déjà s'appuyer dessus).

          Corrigez moi si je me trompe.
          • [^] # Re: ????

            Posté par  . Évalué à 2.

            A priori, Xegl sera entièrement OpenGL ES/EGL accéléré (poubelle EXA et XAA).
            Les applications, donc côté client, devraient être basées sur OpenGL GLX (c'est pour la transparence réso).
    • [^] # Re: ????

      Posté par  . Évalué à 4.

      > Mandriva qui refuse XGL

      Vu qu'on a quelqu'un (voire deux) ici (@mandriva) qui teste(nt) XGL depuis 2 semaines et qui ont réussi à l'intégrer sur une Mandriva 2006, j'ai comme qui dirait un doute sur le "refus" catégorique ...
      • [^] # Re: ????

        Posté par  (site Web personnel) . Évalué à 3.

        j'ai pourtant posté ce lien vers le message du mainteneur officiel Xorg chez Mandriva : http://lwn.net/Articles/171846/

        Ca semble assez catégorique non ?
        • [^] # Re: ????

          Posté par  (site Web personnel) . Évalué à -3.

          Oui hélas.

          Donc si j'ai bien compris, Vista et Suse auront a la fin de l'année les effets 3D de la mort par défaut, et avec le support de ATI/Nvidia, et Mandrake mise tout seul sur une techno balbutiante qui ne tourne que sur une vieille carte ATI ?
          • [^] # Re: ????

            Posté par  (site Web personnel) . Évalué à 5.

            ça me fait un peu marré le coup de la techno balbutiante. Avant que Novell ne fasse une demo de Xgl, sur le wiki de Xgl il était marqué en gros que Xgl était abandonné au profit de Xegl, et que si l'on souhaitait s'intéresser à un serveur graphique accéléré 3D, il fallait allé voir la page de Xegl. En moins de 2 semaines, Xgl qui était considéré comme obsolète est devenu incontournable et ce qui était présenté comme le futur est désormais relégué au rang de désuet et de techno balbutiante.
            • [^] # Re: ????

              Posté par  (site Web personnel) . Évalué à 6.

              Sur http://www.freedesktop.org/wiki/Software_2fXgl on peut lire Xegl is a new server based on the Xgl architecture. It runs on standalone OpenGL with the EGL extensions.

              Euh... je crois que vous vous battez pour rien...
              Xegl (serveur seul) est l'evolution de Xgl(server X + sucouche)...

              Xgl + compiz est surtout une démonstration technique (qui fonctionne bien).

              A court terme, on utilise Xgl, mais à long terme ce sera Xegl ...
              • [^] # Re: ????

                Posté par  (site Web personnel) . Évalué à 2.

                Avec luminocity (basé ou pas sur Xgl j'en sais fichtre rien) c'était une démonstration téchnologique (autant dire que ca a pas de vrai interêt niveau utilisabilité)
                compiz est quand même plus complet, que luminocity, et sera utilisé tel quel (-les bogues) pour sont bureau (comment qu'ils appellent ca déjà?)
                Et Xgl n'est qu'une des possibilité
                Xegl ou Xair seront compatible
                Ou encore X avec drivers nvidia quand ils le supporteront
                (D'ailleur je crois que j'ai réussi à comprendre comment marchent leur bordel avec composite, les composites manager tous différents et ca me met de bonne humeur :)
            • [^] # Re: ????

              Posté par  (site Web personnel) . Évalué à 1.

              LOL, tu as bien raison en fait.

              Je crois qu'en fait, beaucoup (dont moi) sont un peu désespéré de la situation actuel, car rien n'existe de maniere stable (meme composite avec lequel j'ai beaucoup joué), que OSX avait cela déja en 2001, et que Vista sort à la fin de l'année...

              Et j'avoue ne pas franchement être rassuré en voyant 3 acteurs majeurs (Suse/Novell, Redhat et Mandrake) choisir 3 solutions différentes, toutes non finalisés.
        • [^] # Re: ????

          Posté par  . Évalué à 6.

          > Mandriva is not going to officially adopt the Novell Xgl server (Xglx).

          Tout est dans le "officially" ...
      • [^] # Re: ????

        Posté par  (site Web personnel) . Évalué à 2.

        je vous avoue que je suis assez intéressé par des liens moa :)
        J'ai suivi le lien avec la liste cooker et l'ai appliqué... mais ca a pas marché des masses ;)
        si quelqu'un a des infos histoire que je teste avec r300... (ou drivers proprio ati).
        J'ia un peud e temps, c'est les vacances.
    • [^] # Re: ????

      Posté par  (site Web personnel) . Évalué à 3.

      >Mandriva qui refuse XGL et en pince pour Xegl

      XGL et Xegl c'est la meme chose, Xegl c'est juste un serveur XGL avec les extension EGL.

      http://www.freedesktop.org/wiki/EGL
  • # À noter

    Posté par  (site Web personnel) . Évalué à 2.


    NVidia has told us that they will be adding support for GLX_EXT_texture_from_pixmap in the next release of their binary driver, which will enable the aiglx code to run.

    Vu sur la page de aiglx pour le support des cartes nvidia
    De ce que j'ai cru comprendre (mais putain la vache j'y comprends franchement pas grand chose à cette architecture!) l'extension "GLX_EXT_texture_from_pixmap" est 'définie' (si on peut dire) par Xgl ou Xair (sur à 80% pour Xgl 50 pour Xair), et donc ca voudrait dire que un serveur X avec les drivers nvidia (et surement l'option qui va bien© activée) marcherait comme un serveur Xgl ou Xair et ce sans rien faire

    Que ceux qui ont compris plus mieux que moi l'architecture Xgl ou AiGlx (j'ai l'impression que c'est la même mais l'intégration un peu différente.... enfin les deux utilise GLX_EXT_texture_from_pixmap), me contredise parce que la ....
    • [^] # Re: À noter

      Posté par  (site Web personnel) . Évalué à 4.

      actuellement, pour faire fonctionner Xgl avec les drivers nvidia, tu dois lancer ton serveur Xgl en utilisant bien sûr les drivers Nvidia, mais ensuite il faut que tu lances compiz en utilisant non plus la libGl fourni par Nvidia mais celle de Mesa (version cvs) qui elle fourni l'extension GLX_EXT_texture_from_pixmap dont à besion compiz. Ce qui fait qu'actuellement on ne peut pas utiliser le rendu direct pour compiz (serveur glx nvidia + client glx mesa). L'ajout de l'extension GLX_EXT_texture_from_pixmap dans les drivers Nvidia va permettre d'utiliser le rendu direct (serveur glx nvidia + client glx nvidia) ce qui va améliorer les performances.
      • [^] # Commentaire supprimé

        Posté par  . Évalué à 0.

        Ce commentaire a été supprimé par l’équipe de modération.

        • [^] # Re: À noter

          Posté par  . Évalué à 5.

          mouais enfin tout plein, tout plein, t'y va un peu fort, ya quand meme bien plus de geforce2MX+ que de tnt/geforce/geforce2 en circulation (les geforce 1/2 sont quand meme laaaaaaargement enfoncees depuis treeees longtemps, les tnt on en parlera meme pas tellement c'est vieux).

          Loin de moi l'idee d'encourager des pilotes proprios, mais faut pas pousser non plus, nvidia a supporte ses geforce 1 pendant plus de 5 ans quand meme.
          • [^] # Re: À noter

            Posté par  . Évalué à 7.

            La réponse idéale pour ca serait :
            "Si ils ne veulent plus les supporter, qu'ils donnent les specs des cartes d'il y a 5 ans, au moins ceux qui en ont encore ne seront pas bloqués avec..."

            Parce que quand je l'ai acheté, j'ai pas vu qu'il y avait une date limite sur la boite comme pour un pot de yahourt. C'est pas parce que du matos est vieux qu'il ne marche plus.

            Et même avec leurs "drivers unifiés", qu'on ne parle pas de secret de fabrication sur des modèles de 5 ans, c'est pas crédible...
      • [^] # Re: À noter

        Posté par  (site Web personnel) . Évalué à 3.

        donc j'ai pas compris comment marche xgl :)
        Bon j'explique ce que j'avais compris et tu me dis ce qui est faux merci :)
        Donc Xgl est un genre de Xnest (on va dire) mais qui permet la 3D à l'intérieur (entre autre), et en plus du X normal y a GLX_EXT_texture_from_pixmap.
        L'extension composite permet à un client X un peu spécial (le composite manager on dit :) d'avoir accès à toutes les fenêtres, enfin au contenu de toutes les fenêtres, et X ne fait pas le rendu.
        Le composite manager a donc accès à ces "buffers off screens", et en fait ce qu'il veut.
        Avant Xgl tout ce qu'on savait faire c'etait gérer la transparence, donc on affiche les fenêtres tel qu'elle sous ou elle sous met on joue un peu la transparence et pour accélerer le bousin on passe par Xrender.

        Et pis après y a Xgl, qui permet de mettre dans une texture, un buffer sans se casser la tête. Ainsi le composite manager se diversifie et joue sur la 3Dpour afficher les fenêtres.

        Alors quoi de faux la dedans? (tout?:'()

        Sinon si le principe de composite c'est bien ca pourquoi:
        On a pas un/des composite manager qui supporte de faire des miniatures par exemple ? (remarque c'est ce que kompose essaye de faire (sans succes chez moi)) ou de pager "intéractif" (je sais pas comment faut dire, mais qui se met à jour tt seul mais sans surcharger)
        • [^] # Re: À noter

          Posté par  (site Web personnel) . Évalué à 3.

          >On a pas un/des composite manager qui supporte de faire des miniatures par
          >exemple ? (remarque c'est ce que kompose essaye de faire (sans succes
          >chez moi)) ou de pager "intéractif" (je sais pas comment faut dire, mais qui se
          >met à jour tt seul mais sans surcharger)

          C'est exactement ce que permet de faire XGL/compiz, le plugin à la expose ne fait que minaturiser les fenetres jusqu'a ce qu'elles rentrent toutes dans l'ecran.
          • [^] # Re: À noter

            Posté par  (site Web personnel) . Évalué à 1.

            Je me demendais plutot pourquoi on avait pas ca à vent enfin plutot sans glx vu que Xgl existe depuis quelques années
    • [^] # Re: À noter

      Posté par  (site Web personnel) . Évalué à 3.

      Après relecture de la page et toujours de ce que j'ai cru comprendre et de ce que je crois deviner, Xair est un patch pour les différents drivers (donc ca peut pas marcher pour nvidia;) pour qu'ils supportent l'extension GLX_EXT_texture_from_pixmap "nativement" (sans plusieurs couches de serveur X par dessus quoi).
      Ils disent que compiz "devraient" pouvoir fonctionner sur Xair donc déjà c'est bien qu'ils utilisent la même API (aux bogues pres mais ca faut pas le dire)
      Voila tout ce que je comprends :)
      Bon sinon l'installation de Aiglx, bien que plus compliquée que celle de Xgl a pas l'air bien dure (d'accord un peut quand même)
      Enfin j'ai une carte nvidia (vous vous en seriez doutez non? :), donc Xair ca sera pas pour moi, du moins pour le moment....
  • # Xgl sur r200

    Posté par  (site Web personnel) . Évalué à 4.

    On ne fait que dire qu'il faut des pilotes proprio et les dernière cartes pour faire tourné cela.

    C'est faux ! Pour ma part, j'ai fait fonctionner Xgl+Compiz sur iBook G4 avec radeon 9000 et sur un PC avec une radeon 9250 bref, pas la mort du porte monnais.

    Parcontre, rien pour r128 :(

    En tout les cas. Je suis heureux de voir les pilotes libres permettre cela sur de bonne cartes :)
    • [^] # Re: Xgl sur r200

      Posté par  . Évalué à 2.

      D'un autre cote, c'est pas tres nouveau qu'un iBook est capable de faire ce genre de choses depuis 2001 ;-)

      Mon iBook G3 12'' datant de fin 2001 me semble t il (tres loin d'etre un foudre de guerre donc) affiche sans broncher expose et ce genre de choses.
    • [^] # Re: Xgl sur r200

      Posté par  . Évalué à 4.

      Peut-être que je me goure totalement, mais à priori s'ils sont visuellement impressionnants, peut-être les effets de cube et cie sont ils techniquement plus légers qu'un Quake3 ? (Au final, on a juste un polygone...)
  • # ce que j ai compris, betement

    Posté par  . Évalué à 2.

    Voila ce que j ai avec Xgl.
    /usr/bin/Xgl :0 :0 -fullscreen -ac -accel glx
    \_ /usr/bin/Xorg vt7 -auth /tmp/.Xgl-auth-SO

    Xgl utilise un serveur X normal pour le rendu.
    donc il utilise un processus en plus, et cela oblige a bidouiller la config X gdm, ...

    AIGLX d apres ce que j ai compris, force l usage de l indirect rendering, donc la surcouche est au niveau d une extention. plutot que de faire tourner un programme en plus. Je trouve cette approche bien meilleur.

    Donc en somme c est juste une option en plus dans le fichier de config xorg. mais le resultat est le meme que pour Xgl. avec un programme en moins.

    de toutes facon, c est temporaire, la modularisation de xorg est le changement qui permet l evolution reel de l architecte de notre serveur X prefere.

    l api EGL permet d utiliser gl sans X, elle utilise mesa pour le feelback, Xorg pourras a ce momment la se lancer dans le grand nettoyage. et AIGLX ou Xgl ne seront plus que de la vielle histoire.

    Desole, j ai le clavier qui deconne (sous dapper), et encore desole. j ai le francais qui deconne (sous termitorOS1.0).
  • # testé sur ubuntu

    Posté par  (site Web personnel) . Évalué à 3.

    Salut à tous,

    J'ai installé metacity et libcm cvs et j'ai testé avec le xorg fourni par ubuntu. Toute les fenêtres sont blanches, y compris bureau, tableau de bord et menus. On ne voit que les ombres et les effets de transparances (sur ces ombres). Pourtant cliquer sur un menu fait bien dérouler une ombre.

    Je comprend l'utilité du GLX_texture_from_pixmaps tout d'un coup :)
  • # question con

    Posté par  . Évalué à 2.

    désolé, mais ça se télécharge ou ? J'ai pas trouvé de lien sur le wiki de RedHad. CVS ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.