loading . . . Les puces M4 et M5 sont limitées pour ceux qui veulent du Retina en (très) haute définition Un développeur, Sam McLeod, vient de pointer un drôle de problème : pour les amateurs de haute définition (et de grands moniteurs), les puces M4 et M5 sont moins efficaces que les puces M2 et M3. C'est un problème dans un cas assez précis : si vous voulez afficher en 3 840 x 2 160 (Ultra HD, nous utiliserons 4K dans la suite) avec un rendu Retina (HiDPI). Sur les puces M2 Max (notamment), c'est parfaitement possible, alors que ce n'est pas le cas sur les puces M4 et M5. Expliquons.
Un LG UltraFine 4K « Apple ». Image LG.
Quand Apple a introduit les écrans Retina dans les Mac en 2012, la société a choisi une voie un peu particulière : le rendu est effectué avec un framebuffer qui contient quatre fois plus de pixels que la pseudo définition, ce qu'on appelle le mode HiDPI. Prenons un exemple : avec un écran 4K, macOS calcule par défaut une image en 3 840 x 2 160 avec des éléments d'interface doublés, ce qui donne l'équivalent d'une image en 1 920 x 1 080 (la pseudo définition) mais avec un rendu plus fin.
Si vous voulez l'équivalent d'un moniteur en 2 560 x 1 440 sur le même moniteur, macOS va calculer une image en 5 120 x 2 880 et ensuite mettre l'image à l'échelle pour obtenir une image en 3 840 x 2 160 pour l'afficher (la définition native de l'écran). Quelle que soit la pseudo définition que vous choisissez, l'idée — en mode HiDPI — est donc de calculer une image deux fois plus grande dans chaque direction (avec quatre fois plus de pixels) avec une interface doublée, ce qui améliore la finesse.
Le problème de la définition native
Le problème pointé par Sam est dans un cas précis : si vous voulez la définition native du moniteur (3 840 x 2 160). Par défaut, elle n'est généralement pas proposée : Apple offre juste cinq choix entre « Police plus grande » (une pseudo définition faible) et « Plus d'espace » (une pseudo définition plus élevée). Si vous faites un clic secondaire sur cette zone, vous verrez « Afficher la liste », qui offre un peu plus de choix. Et la case Afficher toutes les résolutions » (Apple devrait utiliser le mode définition) en ajoute.
Par défaut, cet écran travaille en pseudo 1 920 x 1 080.
Le mode natif est particulier : il n'est pas rendu en mode HiDPI, ce qui peut rendre paradoxalement l'image un peu floue… malgré la définition native. En effet, les applications contiennent généralement des assets (les éléments d'interface, des images) pour le mode 1x (standard) et 2x (HiDPI) et les seconds fichiers sont plus définis. C'est ici qu'on arrive réellement au problème des puces M4 et M5 : même en passant par des logiciels dédiés comme BetterDisplay, il n'est pas possible de travailler en mode HiDPI en 3 840 x 2 160 sur un écran 4K.
Même si le mode 3 840 x 2 160 n'est pas noté basse résolution, il n'est pas rendu en mode HiDPI.
Reprenons pour bien comprendre : avec une puce M2 Max, il est possible de le faire. macOS calcule une image en 7 680 x 4 320 avec une interface doublée, avant de la mettre à l'échelle en 3 840 x 2 160. Ce n'est pas nécessairement intuitif, mais le rendu des textes est plus fin et l'interface aussi, notamment parce que dans ce mode, ce sont bien les assets HiDPI qui sont chargés. D'un point de vue pratique, c'est un mode qui est surtout intéressant sur les (très) grands moniteurs ou les téléviseurs : travailler en définition native sur un moniteur de 24 ou 27 pouces devient vite compliqué avec des textes trop petits physiquement. ce mode a le défaut de nécessiter plus de calculs : macOS doit calculer une image de très grande taille.
Une limitation matérielle
Dans le cas des puces M4 et M5, il n'est pas possible de dépasser 3 360 x 1 890 en mode HiDPI, ce qui pose deux soucis. Premièrement, l'espace de travail est plus faible. Deuxièmement, l'image est moins nette : macOS va effectuer un rendu en 6 720 x 3 780 avec une interface doublée, avant de mettre à l'échelle le tout en 3 840 x 2 160 pour l'envoyer à l'écran. La mise à l'échelle quand les valeurs ne sont pas des multiples entiers offre des résultats un peu moins nets, car les pixels calculés dans la mémoire ne correspondent pas à un pixel physique.
La comparaison est un peu biaisée avec une capture d'écran, mais l'image de Sam McLeod a le mérite de montrer le problème.
Sam, qui a investigué, a trouvé la raison, et elle est matérielle. Nous vous passons les différentes hypothèses expliquées dans le post : les puces M2 Max (et probablement M3 Max) peuvent créer un framebuffer de 7 680 pixels de large quand les puces M4 et M5 se limitent à 6 720 pixels. C'est une valeur stockée dans le firmware du contrôleur vidéo des appareils, et donc macOS ne peut pas passer outre.
Ça fonctionne en 8K
Si vous branchez un moniteur 8K (7 680 x 4 320), le rendu est bien effectué en 3 840 x 2 160 HiDPI. le problème ne se pose que si vous branchez un moniteur 4K.
Il donne quelques solutions compliquées pour ce cas particulier dans son post, mais dans la pratique, la seule réelle solution doit venir d'Apple, qui devrait mettre à jour le firmware du contrôleur avec une valeur plus élevée… comme pour les anciennes puces. Reste que c'est un problème de niche : elle touche essentiellement les personnes qui veulent travailler en définition native et en HiDPI sur un moniteur (ou téléviseur) 4K de grande taille, de 40 pouces de diagonale ou plus. Dans un usage standard, le problème ne se pose pas, et sur un moniteur de taille classique (24, 27 ou même 32 pouces), la définition native est généralement peu exploitable tant les textes sont écrits petits. http://dlvr.it/TRp9k9