Journal Nvidia Optimus fonctionnel sur Linux!

Posté par  . Licence CC By‑SA.
15
4
mai
2011

En voilà une bonne nouvelle! (méthode directe pour le faire fonctionner sur la derniére ubuntu, vous savez...avec "Unity" comme "Unité avec les dev Gnome")
Pour les détails et questions naturelles qui se posent,il y a un petit thread reddit où j'ai péché l'info

Voila donc une floppée d'ordinateur qui va beaucoup mieux fonctionner sous GNU/Xorg/.../Linux même si ici c'était "impossible"

Et pour l'article wiki : Nvidia_Optimus

Peut-être que c'est une fausse joie
Hip Hip Hip! Hourra! Voici venu le journal multi-bookmarks!

  • # Plus précisément

    Posté par  . Évalué à 10.

    Optimus ne fonctionne pas totalement, dans le sens où il n'y a pas encore de bascule automatique entre la carte Intel à basse consommation et la carte Nvidia à forte consommation.

    Faire fonctionner uniquement la carte Nvidia est un grand pas en avant (ça permet d'avoir enfin des performances 3D correctes sur les laptops munis de cette technologie), mais c'est encore un gros retard sur ce qui est fait sous Windows, notamment car la batterie s'épuise beaucoup plus vite maintenant que la carte Nvidia est tout le temps allumée.

    L'auteur de l'article propose pour cela une solution qui ne fonctionne pas encore actuellement : faire tourner deux serveurs X, un qui utilise la carte Intel et un pour les applications 3D qui ont besoin de performance, qui utilise la carte Nvidia et qui n'est pas toujours lancé. C'est encore loin d'une bascule transparente, mais ça serait déjà très bien pour la plupart des utilisateurs. Et si j'ai bien compris, à moins de totalement changer l'architecture de X, proposer une bascule automatique entre les deux cartes est actuellement impossible. Wait and see!

    • [^] # Re: Plus précisément

      Posté par  . Évalué à -10.

      Ca fait rever dis donc, des packages qui viennent d'on ne sait trop qui, une procedure d'install longue comme ma bi^W comme un jour sans pain, tout ca pour un truc qui marche a moitie et en plus te pompe ta batterie aussi bien qu'une femme de petite vertue du quartier rouge.

      Et le titre de l'article est "Optimus on Linux Problem Solved", ca en dit long!

      If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.

      • [^] # Re: Plus précisément

        Posté par  . Évalué à 10.

        Le titre de l'article a beau être un peu exagéré, j'ai du mal avec le reste de tes « critiques » :

        1. Le code source des paquets est fourni, et ils sont hostés sur le serveur de l'auteur de l'article, on peut donc supposer que c'est lui qui les a compilé ;
        2. La procédure d'installation se résume à deux installation de paquets, une copie de fichier, une commande lancée en root, une édition de fichier et un reboot. C'est loin d'être une procédure longue ;
        3. Ça ne marche pas à moitié, ça marche pour ce que c'est sensé faire. Si ça ne te convient pas, personne ne te force à l'utiliser.
        • [^] # Re: Plus précisément

          Posté par  . Évalué à 3.

          Le titre de l'article a beau être un peu exagéré

          C'est juste qu'on a pas la meme definition de "fonctionnel".

          En l'occurence, c'est plutot une version de test qui commence juste a marcher un peu. C'est une bonne avancee et il faut s'en rejouir, mais crier victoire, c'est s'exposer a ce que les gens avec un minimum de jugeote se moque de nous.

          Dans la liste des points negatifs donnes dans l'article:

          1. A few programs doesn’t work.. this far I have only found Diablo 2.. which gives some weird double/single buffer error in wine...
          2. Still not transparent switching like in Window$.. but a big step the right way..
          3. No acceleration from the Intel card.. so Nvidia 3D or none...
          4. Vdpau doesn’t seem to be working...
          5. Drains battery pretty fast...

          A part le point 1 qu'on peut considerer comme minime, les autres trucs sont beaucoup plus embetants. En particulier le point 5 (et c'est lie au 2 aussi) qui est plutot du genre critique, vu que la techno est justement la pour augmenter l'autonomie pour un usage hybride 3D/bureautique-web!

          Et tant que les pilotes ne sont pas au point avec une integration avancee (liste d'applis qui ne font pas switcher sur la carte Nvidia par defaut par exemple, pour que ton FF ne vide pas ta batterie juste pour afficher une surface OpenGL, ce que la carte Intel fait tres bien toute seule normalement), avec une transition transparente entre les 2 cartes (sans redemarrer ton serveur X et toutes tes applis) et l'acceleration video en HW (pour pas vider la batterie la encore), ont peut pas dire que le probleme est resolu.

          • [^] # Re: Plus précisément

            Posté par  . Évalué à 2.

            J'aurai du le précisé mais Il n'y a pas besoin de redemarrer X d'aprés ce que j'ai compris.

            Un linuxfrien l'explique bien mieux que moi ici bas

          • [^] # Re: Plus précisément

            Posté par  . Évalué à 2.

            Il me semble que le point 1 a quelque chose à voir avec ce qui est décrit dans la Faq de Wayland.

            Why not extend the X server?

            Because for the first time we have a realistic chance of not having to do that. It's entirely possible to incorporate the buffer exchange and update models that Wayland is built on into X. However, we have an option here of pushing X out of the hotpath between clients and the hardware and making it a compatibility option. I'm not deluding myself that any general purpose desktop Linux distribution will stop shipping X as we know it or as a Wayland client anytime soon. Nor should they, there will still be X applications to run and people expect that from a Linux desktop. What's different now is that a lot of infrastructure has moved from the X server into the kernel (memory management, command scheduling, mode setting) or libraries (cairo, pixman, freetype, fontconfig, pango etc) and there is very little left that has to happen in a central server process.

            Pour le reste, je pense qu'on n'a pas fini de découvrir des bidouillages maisons.

            L'idée d'un autre Xorg ( ce qui signifierait que le WM devrait être capable de lancer des applications dans d'autres serveurs X sur le bureau courant ) est une idée extrêmement intéressante, dans le sens où le serveur X et les extensions pourraient être rattachées chacune à un driver donc à un matériel, et dans le sens où fondamentalement X11 est déjà prévu pour pouvoir fonctionner comme ça ( suffit de faire un ssh -X pour s'en rendre compte ) .

            Avec tout ce qu'implique cette évolution dans des bureaux modernes, évolution qui a été "oubliée" proprement par les développeurs qui se sont limités par essence à un seul serveur X sur un bureau. ( qui n'ont pas réfléchi aux possibilités de X ).

            Et je pense que cette évolution des WM pourrait être réalisée en parallèle avec le développement de Wayland comme pile graphique concurrente de X.

            Sedullus dux et princeps Lemovicum occiditur

        • [^] # Re: Plus précisément

          Posté par  . Évalué à 1.

          ça marche pour ce que c'est sensé faire

          Si ce que c'est cense faire, c'est ne pas faire fonctionner ton matos comme il est cense marcher, alors oui, ca fait ce que c'est cense faire.
          Le but d'optimus c'est d'avoir a la fois les perfs et la batterie, de facon totalement transparent. En gros, un truc hybride qui utilise la carte qui va bien quand il faut.
          Dans le cas present, on a soit pas de 3d du tout (et donc je suppose une batterie de furieux) soit une 3d de ouf et une batterie qui va mourir tres vite. Pour changer, si j'ai bien compris, faut changer de session, ce qui est pour moi equivalent a un reboot.
          Ca me parait etre totalement a l'oppose de la philosphie initiale du bouzin, tu trouves pas?

          Pour ce qui est du "paquet qui vient d'ou ne sait ou", oui, ca reste un depot pas officiel du tout, maintenant par un gars dont c'est pas le boulot, qui n'a pas d'infrastructure de verification de son code.
          Si ca te dit de faire tourner du code en root qui vient d'autre part de ta distro, grand bien t'en fasse, mais va falloir penser a arreter de se gargariser de la top securite de linux que le code est fiable parce que les distros y font gaffe...

          If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.

        • [^] # Re: Plus précisément

          Posté par  . Évalué à 5.

          La procédure d'installation se résume à deux installation de paquets, une copie de fichier, une commande lancée en root, une édition de fichier et un reboot. C'est loin d'être une procédure longue ;

          Tout projet commence avec des procédures longues et bidouillesques, pour finir par correctement scripter tout ca. C'est en partie aussi le rôle des distributions que d'empaqueter proprement tout ca pour le rendre transparent à l'installation et l'utilisation.

          Même si la procédure sur le blog est aujourd'hui un peu longue et cryptique, elle va forcément être peaufinée au fur et à mesure que le support progresse. Bientôt, il ne restera même plus rien à taper ou éditer pour avoir le support d'Optimus sous Linux.

          Hop,
          Moi.

        • [^] # Re: Plus précisément

          Posté par  . Évalué à 7.

          Mouais c'est là où j'ai décroché aussi.
          Que des gens se démènent pour optimiser la procédure de dual card ou utilisant screen ( tant que les wm sont pas capables de gérer 25 serveurs X ) , c'est bien, on n'a pas fait le tour des possibilités de Xorg.
          Mais te répéter quelque chose de faux pour te rassurer au mépris des descriptions réelles par le patron de NVidia lorsqu'il a sorti sa technologie sous Windows et MacOS, ça, non, je ne comprends pas.

          Optimus c'est quoi ?
          Optimus, c'est seul l'IGP Intel inclu dans ses processeurs fonctionne, l'autre IGP-GPU ( NVidia ) est éteint la plupart du temps ( courant coupé, dépenses énergétiques pour alimenter l'IGP-GPU NVidia proches de zéro Watts ).
          Puis lorsque tu veux utiliser le GPU NVidia, par exemple à cause de VLC, ou de OpenArena, ou de toute autre combinaison, celui-ci se met en marche automatiquement, et ton application que tu viens de lancer sur ton bureau actif utilise le GPU NVidia. ( toutes les applications peuvent alors utiliser le GPU NVidia et se passer du GPU Intel, ça change rien au concept ) , mais dans les faits, c'est l'application gourmande en calculs parallèles qui pilote le fonctionnement ou pas du GPU NVidia .
          Sur le même espace de travail, sans aucune interruption de service pour l'utilisateur.

          C'est ça optimus.

          Donc non, par rapport à la définition NVidiesque d'Optimus, ça ne marche pas du tout pour ce que c'est sensé faire .

          Et à cause du problème de buffers inhérents à la version actuelle du protocole X11, ça ne marchera jamais correctement pour ce que c'est sensé faire avec Xorg.

          Sedullus dux et princeps Lemovicum occiditur

    • [^] # Re: Plus précisément

      Posté par  . Évalué à 6.

      Et justement, Wayland n'est pas censé résoudre cette insuffisance du serveur X ?

  • # Yata!!!

    Posté par  . Évalué à 5.

    Épatant. Apparemment ça marche aussi avec nouveau mais j'ai des performances pas terrible.

    Intel GMA HD
    NVIDIA GeForce GT330M

    OpenArena tourne au alentours de 30fps (alors qu'il tourne à 125 confortablement avec la carte intel.)
    Pour la video c'est beaucoup mieux. J'ai regardé une video qui avait la particularité de faire ramer mon ancien laptop et dont Mplayer me donne comme caractéristiques:

    VIDEO:  [H264]  1280x720  24bpp  40.000 fps  5011.2 kbps (611.7 kbyte/s)
    

    et c'est quasi nickel (2 mini freeze). La même vid tourne parfaitement avec la carte Intel.

    Est-ce que ça reflète le même résultat que pour ceux qui utilisent nouveau? (bon pour la vidéo mais troidé pas au point?)

    Je vais essayer avec le driver proprio.

    A noter que non, l'accélération avec la carte Intel n'est pas désactivée. Je suppose que c'est dû à une incompatibilité avec les libs OpenGL livrées avec le driver proprio (il n'utilise pas Mesa)

    • [^] # Re: Yata!!!

      Posté par  . Évalué à 4.

      Je vais essayer avec le driver proprio.

      Okay j'y suis presque. Je n'ai plus l'accélération avec la Intel. Par contre la Nvidia ne fonctionne toujours pas. :+)

      • [^] # Re: Yata!!!

        Posté par  . Évalué à 10.

        Bon bon bon. Ça ne fonctionne vraiment pas avec les drivers proprios. X ne démarre pas le screen attaché au driver nvidia.

        Fonctionnement sommaire

        Au démarrage de X on créé 2 Screen. l'un poussé par le driver intel et l'autre par le driver nvidia (ou nouveau). Dans la section ServerLayout on les met les deux en route:

        Screen         "Screen Intel"
        Screen         "Screen Nvidia" Relative "Screen Intel" 0 0
        

        Ensuite l'astuce est d'utiliser VirtualGL qui, au contraire de VNC et autres, dirige les commandes et données 3D vers la carte accélératrice 3D du server, puis envoie les images rendues vers la machine cliente.
        Ici serveur et client sont la même machine. La carte nvidia effectue le boulot, la carte intel l'affiche.

        Pour faire rendre la 3D à la carte nvidia, il suffit de prefixer vglrun à une commande graphique. Pas besoin donc de sortir de sa session pour utiliser la carte nvidia comme écrit dans des commentaires plus haut.

        • [^] # Re: Yata!!!

          Posté par  . Évalué à 2.

          Flute, tu es déjà arrivé à une note de 10. Je ne peux pas te pertinenter.. :-p

          Bravo, et merci pour les explications !

        • [^] # Re: Yata!!!

          Posté par  . Évalué à 0.

          Mais du coup les deux cartes sont allumées ?
          Quid de la performance en autonomie ?

          • [^] # Re: Yata!!!

            Posté par  . Évalué à 2.

            Effectivement les 2 cartes sont en route. Il y a surement moyen de se faire un script qui allume et éteint la carte en s'aidant de vga_switcheroo ou acpi_call mais je ne suis pas allé jusque là.
            Je n'ai pas testé l'autonomie car je n'y ai juste pas pensé. Mon utilisation est assez sédentaire.

            Le driver proprio a finit par fonctionner et donner de bon résultats mais pas moyen de faire fonctionner quakelive quand il est là donc pas très intéressant pour moi.
            Donc j'ai juste arrêté mes tests pour le moment en continuant à lurker sur un peu tout ce qui se fait en la matière.

        • [^] # Re: Yata!!!

          Posté par  . Évalué à 0.

          Préfixer le démarrage d'un programme avec vglrun... oui mais... dans le cas d'un bureau 3D comme on peut l'avoir avec KDE et les effets de bureaux, c'est possible?

Suivre le flux des commentaires

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