Test d’une carte graphique USB sous Mac OS X

Quand on a besoin de plusieurs écrans, un problème se pose souvent : les Mac proposent peu de sorties. En dehors du Mac Pro qui peut recevoir trois écrans par carte graphique et plusieurs cartes graphiques, on est souvent limité à deux écrans, dont un intégré (iMac et MacBook Pro). Si quelques modèles permettent de chaîner les écrans (en Thunderbolt), c’est un peu compliqué et très onéreux (il faut un écran Thunderbolt Apple).

J’utilise actuellement un GPU externe en ExpressCard, mais il y a plus simple : l’USB.

Une société propose depuis des années des cartes graphiques en USB — la carte que j’ai testé est un modèle datant de 2008 — et des pilotes pour Mac OS X sont disponibles.

Le modèle que j’ai testé est un vieux modèle avec une puce DL-160, qui n’a qu’un seul core et se limite au 1 680 x 1 050 (environ). Les modèles récents ont deux coeurs et gèrent les écrans en 2 048 x 1 152 (un peu plus que FullHD, donc).

Avec un écran Apple en ADC (un 20 pouces), ça fonctionne… mais c’est très lent. C’est à peine (dans mon cas) utilisable pour de la bureautique. les raisons sont multiples, mais la première est simple : ma carte graphique USB est vieille. Les modèles récents sont plus efficaces.

La seconde raison, c’est que Mac OS X fait un usage assez intensif de l’accélération graphique et que les cartes graphiques USB ne sont pas compatibles OpenGL. Quartz Extrême n’est pas disponible, ce qui est un gros problème sous Mac OS X : il faut remonter à Mac OS X 10.1 (et ses performances désastreuses) pour comprendre ce que ça implique. Même si nos processeurs sont (heureusement) plus rapides que les G3 et G4 de l’époque, se passer de Quartz Extreme implique de se passer de certains effets et de faire bosser le CPU pour l’affichage.

Plus gênant, certains fonctions ne sont pas disponibles (comme la rotation de l’écran) et certains applications ne se lancent tout simplement pas (iMovie, Keynote, iPhoto, etc.). Il faut aussi dans certains cas désactiver l’accélération graphique — comme dans Firefox — pour éviter les bugs.

Enfin, mais c’est spécifique aux écrans Apple, il est impossible de changer la définition. Les écrans Apple n’ont en effet pas de scaler (le composant qui gère le redimensionnement de l’image) et n’acceptent en entrée que la définition native. Avec une carte graphique classique, c’est cette dernière qui va redimensionner en interne, mais les cartes graphiques USB n’ont pas non plus de scaler… Dans les faits, on a donc le choix entre… la définition native et la définition native.

En vidéo, c’est à la limite de l’inutilisable : le fonctionnement de base de la carte graphique USB est d’envoyer à l’écran uniquement ce qui a bougé récemment, ça limite la bande passante nécessaire et les calculs. En bureautique, c’est parfait : il suffit d’envoyer le curseur et quelques zones de l’écran qui bougent. En vidéo, tout l’écran bouge, donc il faut nettement plus de calculs et compresser l’image beaucoup plus étant donné que la bande passante est fixe. Ce qui peut poser des problèmes : la (re)compression est visible et le processeur n’est pas nécessairement capable de suivre entre la compression de l’image et la décompression de la vidéo.

Pour les jeux, c’est le même problème, en prenant en plus en compte le fait que la majorité des jeux utilisent OpenGL et ne se lancent donc même pas.

Au final, c’est une solution d’appoint qui fonctionne, mais uniquement pour de la bureautique et si on est près à accepter un affichage asthmatique.