MacBook Pro : surprises dans la bascule des cartes graphiques

Florian Innocente |
On en découvre un peu plus sur le système de bascule entre les cartes graphiques apparu avec les MacBook Pro Core i5/7. De prime abord, impossible de savoir quelle carte travaille à l'instant T. On coche une case dans Préférences Système, et l'affaire est entendue. En coulisse, le système fait ses petites affaires avec la promesse de préserver l'autonomie. On sait simplement que le système se base sur les API utilisées par les applications (lire : Comment les MacBook Pro font la bascule graphique).

Lors du test du MacBook Pro Core i5, on disait toutefois espérer la sortie d'un utilitaire capable de dire qui fait quoi à quel moment (maj : depuis il est arrivé, lire gfxCardStatus gère mieux les "anciens" MacBook Pro).

changementautomatique


En fait, cet utilitaire existe, il s'agit tout simplement d’Informations Système… Un lecteur de MacRumors a remarqué que les infos relatives aux deux solutions graphiques changeaient lorsque l'une ou l'autre était en service. Ainsi, avec iMovie c'est la GeForce qui est désignée comme étant celle qui gère l'écran. Avec Calculette, c'est l'Intel HD qui lève la main. Il suffit d'un Cmd + R pour rafraîchir ces données.

basculeintelHD
La carte active


basculeautooff
La carte non active


Du coup, nous avons refait quelques essais sur notre Core i5, avec à la clef des constats parfois surprenants.

Parmi les applications qui déclenchent l'utilisation de la GeForce on trouve iMovie, iPhoto, Pixelmator - jusque-là rien que de très normal - mais également Tweetie et Nambu… deux clients Twitter ! C'est à dire des applications qui n'ont d'autre fonction que d'échanger des bribes de textes en réseau (Twitterrifc, lui, s'en tient à l'Intel HD).

À l'inverse, parmi les applications qui se satisfont de la puce Intel, on trouve Lecteur DVD, Word 2008, Safari, Mail, Adium, iTunes, Firefox, Chrome… ou Lightroom. Le logiciel de traitement d'image d'Adobe se montre donc moins gourmand que le petit Tweetie.

Autre singularité, la lecture d'une même séquence YouTube va lancer la GeForce dans Chrome alors que Safari et Firefox se contenteront de l'Intel (que la séquence soit HD ou pas). Et il faudra quitter Chrome pour qu'il revienne sur l'Intel, le fait de fermer la page YouTube ne suffit pas.

Ailleurs, avec un film DivX ou un film HD (.mkv), VLC va utiliser la GeForce alors que pour ces fichiers QuickTime Player utilise l'Intel HD.

Mais le scénario le plus surprenant reste celui de ces clients Twitter. Exemple : vous regardez un DVD, c'est donc l'Intel HD qui travaille, mais s'il vous prend l'envie de laisser Nambu ou Tweetie en tâche de fond, ceux-ci forceront l'utilisation de la GeForce, rongeant votre autonomie. Même chose si vous ne faites que taper un texte dans Word (ou même dans TextEdit), pour peu que l'un de ces deux logiciels soit ouvert, l'Intel HD passera la main…

switchcartetweetie
Tweetie est ouvert, la GeForce est en action


Dès lors, le système d'Apple peut être assez facilement pris en défaut. Une application (relativement) sommaire, sera néanmoins considérée comme exigeante sur la foi de certaines API utilisées. Est-ce qu'Apple doit optimiser son mécanisme, ou est-ce aux développeurs de reconsidérer certaines instructions dans leurs logiciels ? Aux deux ? La question est posée. L'utilisateur, lui, devant s'en tenir à un poste d'observation.

Conclusion (temporaire), le système d'Apple est élégant par sa simplicité, mais en cuisine, les choses sont nettement plus corsées…
Tags
avatar youpla77 | 
Mais vous croyez vraiment que l'appli twitter a été codée aujourd'hui ? Pour rappel, sur les "anciens "MBP, c'est l'utilisateur qui choisissait la carte à utiliser ce qui l'obligeait sous SL à se delogguer. Le developpeur utilisait l'API disponible sans avoir à se préoccuper de la carte à utiliser. Il utilisait la carte qu'il avait sous la main... Un jour apple décide d'implémenter une nouvelle techno au lancement de ses nouveaux "MBP" pour faire un switch à la volée à priori sans prévenir les développeurs des conséquences. Et là vous faites les effarouchées en disant que c'est la faute du dev. Quand on implemente une nouvelle techno on essaye de prévenir un tant soit peu les developpeurs des impacts. Je suis peut etre à côté de la plaque n'étant pas développeur mais faut pas retourner la situation !!!
avatar alex96 | 
Tu as bien raison youpla77, les gens qui nous expliquent notre métier (je suis développeur) alors qu'ils n'y connaissent visiblement pas grand chose c'est toujours un peu énervant, quel que soit le milieu d'ailleurs. Simple question de respect. Entre s'interroger et critiquer négativement il y a un pas trop souvent franchit. J'ajouterai qu'utiliser openGL pour faire de la 2D n'est en rien une mauvaise idée : c'est une librairie graphique, domaine qui englobe la 3D mais ne s'y restreint certainement pas...
avatar alex96 | 
Sinon pouvoir alterner entre les GPU via un raccourcit clavier en sans interruption, aurait pu être une solution aussi simple qu'efficace. Peut être un poil moins tout automatique mais l'informatique à toujours été une question de compromis...
avatar françois bayrou | 
@oomu "les ingénieurs raffineront certainement avec le temps et le recul l'usage de tels ou tels composants." Oui bien sûr. Ils apprendront à ne plus utiliser coreanimation parce que ca fait switcher sur la Geforce :\
avatar DarkMoineau | 
@françois bayrou Ne parlais-t-il pas plutôt des ingénieurs d'Apple lorsqu'il parle de composants? Sinon il aurait parlé des Devs. Et bon, n'oublions pas que cette technologie est naissante, il faut faire remonter les problèmes et défauts, mais pas tirer à boulet rouge, surtout lorsque la concurrence fait moins pratique. (Optimus n'attends pas l'API, il se lance lorsque le logiciel est dans sa base de donnée. Si votre logiciel n'y est pas, il faut le rajouter à la main dans la base de donnée. Pratique non?)
avatar Feroce | 
A mon sens, se baser simplement sur l'usage ou non d'une API est une mauvaise chose, Twitee en étant l'exemple le plus extrême. Vous dites que l'usage d'une base de donnée est idiot, mais au moins, c'est au développeur à déterminer s'il est opportun ou pas "d'en avoir sous le pied", plutôt qu'une méthode qui est trop déterministe alors que le meilleur compromis aurait été une mesure de charge du GPU. On pourrait même imaginer que c'est l'installateur d'un logiciel qui déciderait de remplir cette base de donnée. Là, on remarque encore cette furieuse tendance d'Apple à faire les choses de manière académique : ça semble plus logique comme ils l'ont fait, sur papier, mais ça manque de pragmatisme...
avatar noAr | 
Dans quelques années on aura des indicateurs de consommation de ressources hardware par les soft équivalents a ce qu'on trouve actuellement dans l'electroménager. Avant de partir en vacance on se préparera la session ultra-light pour le train :-)
avatar Anonyme (non vérifié) | 
Hello, Une ptite bidouille pour savoir quelle carte graphique est utilisée : ça n'affiche pas dans le dock la carte graphique mais ca évite de lancer les prefs et tout.. pour info : le simulateur iphone switch sur la 330. Et il arrive que le switch auto se perde : plus rien de lancé mais reste en 330. Vivement des évolutions, dans l'état c'est ingérable leur truc. [url=http://files.me.com/herve.lemaitre/6amz2s]GraphicCard.dmg[/url] rv

Pages

CONNEXION UTILISATEUR