Journal Test grandeur nature de Nouveau + KDE SC 4.5

Posté par  (site web personnel) .
Étiquettes :
30
14
juin
2010
Bonjour,

Ceux qui lisent de temps en temps mes journaux savent que j'aime bien le bleeding-edge. Aujourd'hui, je vous propose un court journal qui va vous mettre du baume au coeur : oui, le Libre peut le faire !

Cela fait quelques temps que je suis le développement de Mesa, l'implémentation libre d'OpenGL utilisée sous GNU/Linux. Cette énorme bibliothèque contient OpenGL, mais également les différents pilotes 3D des cartes graphiques.

Depuis quelques années, une nouvelle manière de faire ces pilotes est apparue : Gallium3D. Le principe est d'écrire des pilotes tout simples, permettant juste de manipuler des textures, des images, et des shaders (programmes 3D) sur la carte graphique.

Au dessus de ces pilotes simples se trouvent des state-trackers, c'est à dire de petits bouts de code liant le pilote à une API. Par exemple, le state-tracker propre à Mesa fait en sorte que les opérations OpenGL soient envoyées au pilote. Il existe aussi un state-tracker pour OpenVG (SVG accéléré), EXA (accélération 3D sous X11), et d'autres un peu plus expérimentaux.

Je possède plusieurs cartes graphiques, dont deux ATI Radeon X12xx (1250 et 1270). Ce sont des cartes intégrées assez vieilles, très bien supportées par les pilotes ATI. J'ai donc l'occasion de jouer à des jeux 3D comme je veux.

Le problème est que le pilote libre ATI est trèèèès lent. Il vous suffit de lire Phoronix pour voir à quel point il se traîne : près de 20 fois plus lent que le pilote propriétaire.

Sachant que j'utilise le pilote ATI Gallium3D, je m'étais toujours dit que c'était Gallium3D qui était trop lent. Heureusement, je me trompe.

J'ai dans mon tiroir quelques vieilles (très vielles) cartes nVidia GeForce 6200, avec 64 Mio de RAM.

Test de Nouveau

Aujourd'hui, j'ai décidé d'installer une de ces cartes dans ma tour. Je l'active dans le BIOS, installe le pilote Nouveau Git, tout ce qu'il faut, et redémarre.

Tout d'abord, j'ai la joie de voir que le KMS (Kernel Mode Setting) marche impeccablement, je suis déjà très content. Mais ce n'est que le début de mon voyage.

Ensuite, je lance un Xorg vide (avec la commande Xorg). J'y met une xterm, et je lance Neverball.

Déjà, je suis soufflé. Non seulement Neverball marche impeccablement, mais il est également incroyablement plus fluide qu'avec la carte ATI ! Même si j'active tous les effets, en 1280x1024. La carte ATI commence à avoir du mal sans aucun effet, et en 1024x768 (alors que sous Windows, je peux jouer à TrackMania Nations Forever en fullscreen sans le moindre problème, à qualité moyenne).

Le point important est que le pilote 3D Nouveau est le seul entièrement basé sur Gallium3D. Il est donc parfaitement adapté à cette architecture (le pilote Radeon existe en version r300 et r300g, partageant du code au travers de couches d'abstraction).

Bref, je passe 30 minutes à redécouvrir Neverball avec des niveaux tout en brillance et en grand.

Ensuite, je ferme tout, lance KDE, et vais dans la configuration des effets de bureau.

Si vous ne le savez pas encore, KDE SC 4.5 proposera un magnifique effet de flou. Malheureusement pour les possesseurs de cartes ATI Radeon non-HD (les vieilles), il n'est pas supporté sur ces cartes, qui ne possèdent pas une fonctionnalités critique nécessaire au flou (les textures dont la taille n'est pas un multiple de deux).

Avec la carte nVidia, une fois la case à cocher activée, l'écran clignotte un peu. Ensuite, je me retrouve devant un magnifique bureau avec effets, fenêtres molles, le tout super fluide, et du flou !

Les screenshots que j'avais vu ne mentent pas, cet effet est magnifique (si vous imaginez le flou comme celui de Seven, vous vous trompez). Le panel est flouté, les décorations de fenêtres, les infobulles, le menu Kickoff, etc. Sans être lourd, ce flou apporte une belle touche. En effet, les différents éléments sont plus transparents que sans le flou (donc plus légers), mais tout aussi lisibles.

Bref, j'aime Nouveau. C'est un projet titanesque qui peut heureusement commencer à se dire qu'ils touchent au but. Leurs pilotes 2D sont bons, très bons, et le 3D est largement acceptable (quelques scintillements de temps en temps, quelques rectangles noirs qui traînent).

Je comprend maintenant parfaitement pourquoi RedHat active ce pilote par défaut dans la dernière Fedora : il est prêt ©.
  • # Nouveau

    Posté par  . Évalué à 2.

    Je suis moi aussi assez enthousiaste pour le projet Nouveau bien que je ne sois pas équipé de Nvidia.

    Pour mon frangin, j'ai installé sur son ordinateur (XP-1800+ et surtout Nvidia GMX 400 -une daube-) Ubuntu 10.04.. L'expérience a été désastreuse, l'ordi qui se fige, on ne peut même plus accéder au tty. Seul l'accès à la machine par SSH fonctionne et me permet de voir que X occupe tout le cpu.

    Et dans les logs ? Des erreurs pour Nouveau. Alors soit Nouveau n'est pas prêt, soit Ubuntu a mal fait son boulot.

    Bref, je lui ai mis la 9.10 qui, elle, fonctionne.

    Je nuance donc un peu ton propos pour dire que ce n'est peut-être pas encore complétement prêt.

    My 2 cents.
    • [^] # Re: Nouveau

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

      J'ai testé avec le noyau 2.6.34, Ubuntu 10.04 utilise le 2.6.32 (si je me souviens bien).

      Et sachant que Nouveau a été un beau chanté pour le 2.6.33, puis à nouveau un gros chantier pour le 2.6.34, je peux comprendre qu'être deux versions du noyau en retard pour nouveau amène des problèmes.

      Il y a aussi le fait que Ubuntu 10.04 n'a pas le dernier Mesa, DRM, etc. C'est le problème des trucs en développement : ça change vite.

      (mais j'avoue, j'ai réussi à faire freezer mon PC avec Nouveau, mais je ne me souviens plus comment (j'ai activé des effets Kwin au hasard)).
    • [^] # Re: Nouveau

      Posté par  . Évalué à 1.

      J'ai une carte nvidia ( une G73 [GeForce Go 7700] plus exactement ) et bien qu'ayant un fedora 13 avec nouveau d'installé (qui soit dit en passant n'est pas par défaut -- il faut installer mesa-qqchose--), je n'ai aucun effet 3D.

      J'aurais bien aimé mais j'attendrais encore...


      My 2 cents. (egalement)
      • [^] # Re: Nouveau

        Posté par  . Évalué à 2.

        Je crois bien que le support de la 3D est désactivé à la compilation par défaut.
        Ceci pour éviter d'avoir à gérer trop de bugs de jeunesse pour l'instant.
    • [^] # Re: Nouveau

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

      C'est aussi parceque Redhat fait le nécessaire pour que ça fonctionne out-of-the-box. Ta distribution, là, elle est dans le cas des distrbutions qui intègre sans intégrer vraiment... Moi aussi si j'installe ma distribution sur le funtwist, elle va coller "nouveau" par défaut... Dommage "nouveau" ne prends pas du tout, mais alors pas du tout, en charge le chip ion. Paf écran noir. Ballot.
      Tandisque la redhat elle voit que le chip n'est pas supporté et colle vesa.

      m'enfin bon, j'dit ça j'dit rien.
    • [^] # Re: Nouveau

      Posté par  . Évalué à 2.

  • # des captures!!

    Posté par  (site web personnel) . Évalué à 10.

    Salut,
    tu voudrais pas nous mettre des captures? parce que tu nous fait baver mais après rien... Espèce d'allumeur ! :p
  • # Ça sert à quoi ?

    Posté par  . Évalué à -6.

    Non, sans déconner, le flou, ça sert à quoi, à part s'éclater les yeux ?

    Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

    • [^] # Re: Ça sert à quoi ?

      Posté par  . Évalué à 6.

      Ça sert à avoir un terminal transparent, mais qui reste lisible peu importe la couleur de l'arrière plan par exemple.

      L'auteur du journal parle de panel, de décorations de fenêtres, d'infobulles, de menu Kickoff, j'espère que Konsole fait partie des "etc", c'est vraiment un truc que j'aimais bien avec Compiz !

      http://gentoouser.free.fr/screenshots/20080925.png
      • [^] # Re: Ça sert à quoi ?

        Posté par  . Évalué à 5.

        C'est bien ce que je dis : ça sert à quoi que ça soit transparent si on ne peut pas distinguer ce qu'il y a derrière ?

        Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

        • [^] # Re: Ça sert à quoi ?

          Posté par  . Évalué à 4.

          Euh, c'est juste beau ?
          • [^] # Re: Ça sert à quoi ?

            Posté par  . Évalué à 6.

            D'ac c'est pour ça.

            Perso, je voyais à la transparence une utilité : genre j'ai une doc ouverte et mon terminal au dessus, au travers duquel je peux lire cette fameuse doc.

            Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

            • [^] # Re: Ça sert à quoi ?

              Posté par  . Évalué à 2.

              Oui, c'est bien le principe, mais KDE va plus loin, notamment en matière d'écrans 3D:

              Entre les myopes et autres, il faudra flouter en champ proche ou en champ lointain pour que tout le monde puisse tout lire par transparence. Eux ont déjà commencé!

              ---------->[ ]
      • [^] # Re: Ça sert à quoi ?

        Posté par  . Évalué à 2.

        Par curiosité comment gère tu ces effets sur xfce ?
        compiz ?
        • [^] # Re: Ça sert à quoi ?

          Posté par  . Évalué à 1.

          Oui Compiz, l'effet "blur" et un filtre pour l'appliquer uniquement aux fenêtres qui contiennes "Terminal" dans le titre (y'a peut-être un meilleur critère).
  • # Chipotage

    Posté par  . Évalué à 6.

    il n'est pas supporté sur ces cartes, qui ne possèdent pas une fonctionnalités critique nécessaire au flou (les textures dont la taille n'est pas un multiple de deux).
    C'est pas un multiple de deux mais une puissance de deux il me semble...
  • # Moi aussi j'ai tenté nouveau

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

    Comme toi, je me suis dit qu'il était temps de passer à nouveau.
    J'ai donc ajouté des bouts d'expérimental dans ma sid, et tout marche pour le mieux, après avoir dû modifier une partie de la configuration de mon kde à la main.

    Du coup, je me demandais si tu avais le même souci que moi : il faut choisir xrender et non OpenGL comme mode d'affichage composite, ou chez toi ça marche avec OpenGL ?
  • # Radeon libre hors compétition?

    Posté par  . Évalué à 8.

    Avant on disait que les pilotes ATI libres sont à la traine parce que c'est pas facile de décortiquer la doc et encore moins facile de faire un pilote performant.

    Maintenant je vois que les dévs de Nouveau on fait un pilote semble-t-il assez performant, et ce sans aucune doc.

    Pourquoi le pilote Radeon libre a-t-il du retard de ce côté?
    - Manque de moyens? (Nouveau en aurait donc beaucoup plus?)
    - Pilotes ATI plus difficiles à développer que ceux de nVidia?

    (Ceci est une vraie question et pas un appel à Troll. Vous avez encore 3 journées pour répondre avant que ça devienne n'importe quoi).
    • [^] # Re: Radeon libre hors compétition?

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

      Je pencherais pour la 2eme solution. À ce que je vois dans le Git de Mesa, il y a un pilote Nouveau (basé sur Gallium, peu de fichiers), et plein de pilotes ATI (r300, r600, radeon, r300g, r600g).

      En fait, il me semble que les cartes nVidia sont bien plus compatibles entre elles, c'est à dire qu'il n'y a que des différences mineures entre deux cartes, même éloignées dans le temps.

      Du côté d'ATI, ils aiment bien refaire l'architecture de leurs cartes de temps en temps. On a les Radeon r200-r500, puis ils ont fait les HD (r600 et r700), puis ils ont fait les Evergreen (Radeon HD 5xxx, sorties en septembre).

      Il y a donc 3 pilotes ATI à maintenir, et un seul Nouveau.

      Il y a aussi le fait que le pilote ATI est déjà beaucoup utilisé. Ils ne peuvent pas supprimer leur pilote ATI basé uniquement sur Mesa pour se concentrer sur Gallium, du fait qu'il est encore très utilisé. Du côté de Nouveau, comme presque personne ne l'utilise (ils font tout pour), ils peuvent faire un peu ce qu'ils veulent.
    • [^] # Re: Radeon libre hors compétition?

      Posté par  . Évalué à 3.

      Les pilotes ATI libres sont UTILISABLES depuis au moins 4 ans pour les puces R300. Ça veut dire qu'ils ne m'ont jamais planté dans les mains, que toutes les applications OpenGL passent. Il a été écrit comme Nouveau, par ingeniérie inverse. A l'époque, Nouveau était un projet dans la tête de quelques visionnaires.

      Depuis, la couche OpenGL libre a profondément changé, avec un abandon planifié de Mesa pour Gallium. Cela a fortement ralenti Nouveau, qui a décidé d'abandonner le pilote Mesa alors même qu'il allait devenir utilisable, afin de ne pas avoir à en assurer le suivi des bugs.

      Le pilote ATI libre lui aussi prévoit de passer de Mesa à Gallium, mais l'existant étant fonctionnel, la version Gallium ne sera par défaut dans les distributions que quand elle sera considérée plus complète et stable.

      Le pilote libre Radeon n'a donc pas du retard par rapport à Nouveau : il a une version plus STABLE que Nouveau (r300) et une version aussi avancée que Nouveau (r300g). D'ailleurs, il n'y a pas un seul pilote unifié côté Radeon : il y a 128, r100, r200 (pilote libres écrits sous NDA, et enfin r300, qui s'est étendu aux cartes r400, r500 et arrive aux r600 et r700 pour MESA 7.9.

      ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

      • [^] # Re: Radeon libre hors compétition?

        Posté par  . Évalué à 3.

        Quand je dis "à la traîne", je ne veux pas dire non fonctionnels, je veux dire côté performances.
        De ce que je lis dans le journal, le pilote nVidia offre déjà de meilleures performances et a été développé en moins de temps.

        C'est pour ça que je m'interrogeais.

        Avec toutes ces explications, ça me semble effectivement plus clair.
    • [^] # Re: Radeon libre hors compétition?

      Posté par  . Évalué à 4.

      D'un point de vue developeur de driver le materiel nvidia est bcp plus "facile", propre, sympa.

      Apres pour radeon il faut comprendre qu'on est enferme dans des choix techniques fait il y a plus ou moins longtemps et qu'on ne peut en changer que tres tres tres difficilement (l'interface noyau userspace est fige pour nous, pas pour nouveau).
    • [^] # Re: Radeon libre hors compétition?

      Posté par  . Évalué à 3.

      Comparez :

      http://www.x.org/wiki/RadeonFeature

      http://nouveau.freedesktop.org/wiki/FeatureMatrix

      Je n'ai pas vraiment l'impression que Nouveau soit plus avancé que Radeon côté libre...

      ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

Suivre le flux des commentaires

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