Un eGPU sans écran externe sous macOS

Depuis que je tente le eGPU – et ça date -, un problème se pose sous macOS : la nécessité d’utiliser un écran externe. Mais récemment, je me suis rendu compte qu’une solution existait. Elle n’est malheureusement pas parfaite, en attendant peut-être une solution Apple.

Un faux écran nécessaire

Premier point, il faut brancher un faux écran sur la carte graphique. Le plus simple reste un Fit Headless, un petit dongle HDMI qui remplace un écran mais on peut aussi utiliser une prise VGA modifiée si le GPU supporte la norme (ce n’est pas le cas des derniers modèles de nVidia).

Le Fit Headless 4K

Ensuite, il faut démarrer le mac et aller dans les Préférences Systèmes, puis dans Moniteurs. Si l’écran interne n’est pas le principal, pressez option + F2. L’idée va être de simplement d’activer la recopie vidéo dans l’onglet Disposition, de l’écran principal (relié à la carte graphique externe) vers l’écran interne du portable. Ensuite, il suffit de choisir une définition valable et d’essayer de jouer.

Il faut cocher la recopie vidéo

Une grosse perte de performances

Le principal problème de cette solution vient des performances. Dans une solution classique (sous Windows), le eGPU va écrire directement dans le framebuffer (la mémoire) de la carte graphique interne pour l’affichage et les développeurs de pilotes ont des solutions adaptées à ça, avec une compression des données. Ici, visiblement, l’eGPU écrit dans sa propre mémoire avant de transférer le tout vers celle de l’IGP Intel, ce qui sature totalement le bus Thunderbolt.

Effectuer un rendu en 1080p sur le eGPU avant de le rendre (toujours en 1080p) sur l’écran interne est totalement impossible : on tombe sur des performances ridicules. En passant en 720p (sur l’écran en 1 366 x 768 d’un MacBook Air 11 pouces, ça reste correct), la perte reste acceptable. Avec F1 2106, il devient possible de jouer à ~35 fps (rendu en 720p, réglages supérieurs, AA 2x) avec une GTX 1060 en externe et en Thunderbolt 1 (AKiTio Thunder2). Avec mon ancien montage en ExpressCard, la moyenne descend à 30 fps.

En 720p sur l’écran interne


En 1080p sur l’écran externe

En comparaison, le jeu tourne à 42 fps en 1080p sur un écran externe, soit nettement plus.

Un pis-aller

Globalement, ça reste une mauvaise idée : les performances s’effondrent totalement et même avec une bonne carte graphique et un petit écran, le résultat reste assez lent. Sur un MacBook Pro ou même un Air 13 pouces, le simple fait de monter en définition sature totalement la bande passante. Le Thunderbolt 2 et 3 (respectivement 16 et 32 Gb/s) limitent la casse mais le débit reste trop faible pour profiter de cette fonction. Reste à espérer que nVidia ou Apple proposent un jour une solution adaptée, même s’il y a peu de chances que ça arrive : même dans les portables avec deux GPU, Apple utilise une solution matérielle propriétaire.