Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 09/05/2011, à 04:13

Nepenthes

[Optimus] Une solution en vue !

GROS UP ! (nVidia Optimus)
Ce post concerne les ordinateurs portables équipés de la technologie Optimus et dépourvus de "mux" laissant le choix de la carte graphique au prix d'un redémarrage du serveur X. Si le fameux vga_switcheroo ne fonctionne pas pour vous (portables Dell, HP Asus avec carte graphique nVidia dédiée et Intel intégrée), lisez la suite : Optimus pourrait bientôt être mieux supporté que les switchable graphics ; à la clé, un support de cette technologie sans redémarrage de X !

Apparemment, les drivers proprio nvidia fournissent désormais VirtualGL, une bibliothèque qui redirige sur demande les instruction OpenGL de certains logiciels sélectionnés vers la carte graphique dédiée nvidia, et récupère le pbuffer (tampon contenant l'image calculée par la carte) pour l'afficher sur le serveur X via la carte Intel intégrée (qui n'a besoin que de l'accélération 2D pour effectuer cette tâche). Mais ça n'est qu'une possibilité inexploitée...

Le projet Prime (équivalent linuxien de l'architecture logicielle Optimus), renommé en Bumblebee, fait usage de cette capacité pour afficher à la fois le bureau accéléré par la carte Intel, et les jeux accélérés par la carte nVidia.

Pour que le support de la technologie Optimus par la communauté soit effectif, il manque un logiciel gérant tout ça, basculant automatiquement sur VirtualGL les jeux, et utilisant "acpi_call" pour mettre en veille la carte nVidia si elle est inutilisée pour économiser de l'énergie.
Il semblerait que pour l'instant, VDPAU (lecture vidéo HD fluide par la carte dédiée nvidia) ne soit pas fonctionnel.

Plusieurs inconnues subsistent :
- Comment est géré le port HDMI présent sur l'ordinateur portable ? (est-il géré par le pilote Intel ? Par le pilote nvidia ? Dans le premier cas, le support devrait arriver vite, dans le second, on serait dans l'impasse...)
- Comment Bumblebee va-t-il être intégré aux distributions Linux ? (intégration par nvidia dans les paquets du pilote proprio ? présence dans les dépôts Ubuntu ? Comment Jockey détectera-t-il les configurations Optimus, et installera-t-il Bumblebee seulement en cas de besoin ?)
- Qui va coder le gestionnaire d'accélération graphique (faire la liste des applications à accélérer via VirtualGL, permettre à un utilisateur d'ajouter une application, permettre aux jeux, lors du dépaquetage, de s'incrire eux-mêmes pour être accélérés ?)

Voilà la situation actuelle pour les configurations Optimus... C'est un sacré pas en avant, on peut espérer un support correct dans quelques semaines ou mois, et une intégration à la distribution pour la 11.10 si aucune mauvaise surprise ne se produit (problème avec VirtualGL, limitation liée à l'architecture empêchant définitivement le double écran...).

Sources :
https://lists.launchpad.net/hybrid-graphics-linux/
http://www.martin-juhl.dk/2011/05/optim … em-solved/

Moi qui me pensais condamné à utiliser mon XPS m1330 pour plusieurs années, faute d'équivalent actuel compatible avec Linux (tous les portables sont équipés d'Optimus désormais, sauf quelques AMD dont le serveur X doit redémarrer pour basculer entre la carte dédiée et la carte intégrée)... En écrivant ce post, je pense aussi à tous ceux qui ont déjà fait le choix d'un PC portable actuel, qui vont enfin pouvoir se passer de Windows et/ou exploiter à fond leur machine !

Hors ligne

#2 Le 11/05/2011, à 19:24

metasequoia

Re : [Optimus] Une solution en vue !

Nepenthes a écrit :

Le projet Prime (équivalent linuxien de l'architecture logicielle Optimus), renommé en Bumblebee, fait usage de cette capacité pour afficher à la fois le bureau accéléré par la carte Intel, et les jeux accélérés par la carte nVidia.

Le projet PRIME est une projet de Dave Airlie qui vise à transposer l'idée de Optimus dans le noyau linux, mais qui pour l'instant semble arrêté. Ce projet consiste notamment à pouvoir copier le framebuffer de la Nvidia dans celui de l'Intel.
Dave Airlie est également à l'origine de vga_switcheroo dans le noyau qui permet de faire fonctionner la balance entre deux carte graphique avec un multiplexeur mais qui ne marche pour l'instant que pour des combinaisons de carte ATI/Intel. De nouveaux supports pour des combinaisons Nvidia/Intel sont en train d'être ajoutées au noyau 2.6.39 en développement et dans le prochain noyau grace aux apports de Alex Williamson qui développe asus-switcheroo qui apporte le support de certaines combinaisons Nvidia/Intel à vga_switcheroo. Mais ce logiciel permet seulement de démarrer une session avec la carte discrète ou avec la carte intégrée. Il ne permet pas d'utiliser une seule fenêtre accéléré par la carte dédiée comme Bumblebee.

Le projet Bumblebee est un hack mis en place par Martin Juhl qui consiste à utiliser VirtualGL. Puisque ce projet n'a rien à voir avec le Prime de Dave Airlie, il a demandé à ce que Martin utilise un autre nom. Pour information, Optimus Prime et Bumblebee sont apparemment des personnages de la série Transformers. (Pour les sources voir les mails de la liste de diffusion linux-hybrid-graphics)
VirtualGL sert normalement à faire calculer le rendu par des serveurs puissants équipés de bonne carte graphique, de l'envoyer à travers un réseau pour que le rendu soit afficher à l'aide d'un ordinateur équipé d'une  carte graphique moins puissante. Pour que le transport se fasse rapidement, les données sont compressées et le CPU est utilisé pour cette étape, il intervient donc pour faire le lien entre les deux cartes qui sont normalement situés sur des machines différentes. Il s'agit donc d'un détournement d'une solution existante qui n'est pas intégré dans les drivers NVidia d'après ce que je sais mais qui permet de les utiliser pour calculer le rendu et qui ne sera pas intégré dans le noyau.

Bumblebee intégre deux serveurs graphiques (un pour chaque carte) et la machine sert à la fois comme un client et un serveur VirtualGL. Il est donc loin de s'agir de la méthode optimale mais cela peut servir en attendant. Je ne pense pas qu'elle sera intégré telle quelle est actuellement dans aucune distribution, il s'agit juste d'un script , d'un ensemble de fichier de configuration ainsi que du paquet VirtualGL. A la limite, on peut créer un paquet indépendant mais cela ne sera pas intégré au paquet nvidia je pense dans l'état actuel.
D'autres possibilités dont je n'ai pas bien étudié le mode de fonctionnement sont en développement notamment hybrid-windump qui est apparemment un hack aussi basé sur windump et qui semble utiliser deux serveurs graphiques distincts. Je ne connais pas vraiment ce travail.

En tous cas ce qui est clair, c'est que maintenant il va falloir coder un gestionnaire d'accélération graphique, trouver une solution pour le HDMI (pour mon portable le HDMI semble être connecté à la Nvidia ?!!!?) et essayer d'intégrer les solutions pour éteindre la carte dédiée (acpi_call ou asus-switcheroo) et pour faire fonctionner cette carte pour l'accélération (Bumblebee  voire hybrid-windump ou plus tard PRIME si Dave Airlie trouve quelqu'un ou le temps pour le faire). D'après Phoronix, le développement devrait encore plus avancé pour le noyau linux avec la sortie de Synergy  de Nvidia début juin, qui est l'équivalent de Optimus pour les desktop. Peut-être même que Nvidia va même enfin se bouger pour aider à solutionner le problème sous linux.

PS: Il faut bien noter que la problématique est différente pour les technologies pre-Optimus, ou une seule carte fonctionne à la fois.

Hors ligne

#3 Le 12/05/2011, à 01:33

metasequoia

Re : [Optimus] Une solution en vue !

Un wiki a été créé sur le sujet en anglais pour les informations : Wiki de hybrid-graphics-linux
Merci de rapporter votre expérience avec les différents modules en spécifiant votre distribution, sa version, les cartes graphiques par exemple.

Hors ligne