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).
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.
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 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.
Merci pour tes explications.
J’ai tout de même une question qui me turlupine depuis un moment.
Si je prends le nouvel imac 2017 avec ses connections Thb 3 et si je veux un eGPU avec une carte haut de gamme nvidia et que je veux uniquement me servir de l’écran interne 21 ou 27″ selon le choix.
En utilisant une session Win10 via bootcamp, vais je aussi avoir cette perte de performance ou pas. Est ce du uniquement à MacOS ??
Enfin, en utilisant une machine virtuelle à la place de bootcamp (VMWare ou Parallels) quelle sera la différence au niveau des performances ?
Merci par avance pour ta réponse :)
Sous Window, t’aura aussi la perte.
C’est purement matériel : tu dois envoyer dans un sens les données vers le GPU et les données doivent revenir sur le bus vers la carte grahique interne (en gros, on doit aller écrire dans le GPU interne). Pour du 1080p60, ça va nécessiter au moins 3,7 gb/s sur les 32 (max) disponibles. En 4K, on passe à pas loin de 15 Gb/s nécessaires. Sachant que forcément, les jeux utilisent aussi une partie de la bande passante en question. Donc a un moment, on sature et ça diminue les perfs.
Pour les machines virtuelles, ça marche pas : les outils actuels permettent pas de virtualiser un GPU dédié (après, c’est possible en théorie).
Merci pour cette confirmation… :(