La dernière version de macOS, Monterey, apporte (enfin) la prise en charge du rafraîchissement variable sous macOS, avec le FreeSync.
Pour résumer rapidement : un écran LCD classique fonctionne à 60 Hz, et affiche donc une image toutes les 16 millisecondes (1000/60). C’est efficace tant que vous envoyez 60 images par seconde, assez logiquement. Mais si jamais vous tentez d’afficher quelque chose qui n’est pas à cette fréquence, vous aurez des soucis. Soit des images doublées (et donc des saccades), soit des images coupées en deux.
Vous vous dites que ça n’arrive pas souvent ? En réalité, si. La majorité des vidéos fonctionne à 24 fps (cinéma), 25 fps (contenu européen, « PAL ») ou ~30 fps (contenu américain, « NTSC »). De même, dans les jeux vidéo (ou même pour l’interface de macOS, d’ailleurs), si le GPU n’arrive pas à calculer les 60 images/s, ça saccade. La solution, qui existe depuis un moment, vient des écrans à rafraîchissement variable. Au lie de travailler à 60 Hz (fixe), ils ont une plage de fonctionnement. Entre deux valeurs (24 à 120 Hz pour les MacBook Pro, par exemple), l’écran n’affiche une image que quand il reçoit l’image en question. En pratique, ça donne une image plus fluide, sans saccade jusqu’à un certain point (à 24 Hz, c’est quand même saccadé, mais c’est inhérent à la façon de filmer).
Il existe plusieurs technologies de ce type. l’originale, c’est G-Sync chez nVidia. C’est propriétaire, un peu bricolé côté écran, mais très efficace. La seconde, utilisée par Apple, c’est l’Adaptive-Sync (VESA), souvent nommé FreeSync, qui est le nom commercial d’AMD. La troisième, c’est le VRR de la norme HDMI.
Premièrement, l’implémentation d’Apple nécessite du DisplayPort ou de l’USB-C (en pratique, c’est la même chose, la vidéo en USB-C, c’est du DisplayPort). Ca ne fonctionne pas en HDMI de ce que j’ai pu voir, parce qu’Apple ne prend pas en charge le HDMI 2.1 (ni le VRR, la présence du 2.1 n’implique pas la présence du VRR) ni FreeSync sur HDMI (qui existe, mais c’est un bricolage d’AMD). Deuxièmement, il faut probablement un Mac récent. Sur mon Mac mini M1, ça fonctionne, sur mon MacBook Pro 2017 (avec une Radeon Pro 560), ça ne marche pas. Vu ce sujet, ça marche sur les derniers MacBook Pro en Intel ou avec certains eGPU. Je suppose que c’est une limite artificielle comme souvent chez Apple, FreeSync est utilisable depuis un moment chez AMD. Je n’avais pas mon eGPU avec moi au boulot pour tester avec une carte graphique plus récente. Pour passer sur FreeSync, il faut se rendre dans les Préférences Système, puis dans Moniteurs. Vous pourrez ensuite choisir le rafraîchissement variable dans les options.
macOS affiche un truc intéressant : la plage de fonctionnement. Ça m’amène à un point : les réglages de l’écran. Sur le moniteur du boulot, un LG 4K, FreeSync est désactivé par défaut et l’OSD propose deux modes (Basic et Extended). Dans le premier, la plage est de 48 à 60 Hz, dans le second de 40 à 60 Hz. La plage maximale va dépendre de l’écran, mais la majorité des modèles 4K (et plus) ne dépasse pas 60 Hz, alors que les 1080p et 1440p peuvent parfois atteindre 120, 144 ou même 165 Hz. La limite haute dépend de la bande passante, donc dans certains cas, le DisplayPort ne permet pas d’atteindre des valeurs très élevées. Pour la limite basse, ça va dépendre aussi. certains modèles descendent très bas (24 Hz souvent), ce qui est pratique pour les vidéos. Mais dans la majorité des cas, on se limite à 40 Hz en limite basse, ce qui est un bon compromis qui permet de faire du 24/25 Hz en vidéo en doublant les images (donc sans saccades).
Attention quand même, l’implémentation d’Apple semble créer du scintillement dans certains cas. Et si vous voulez un exemple rapide de ce que ça donne, allez sur cette page avec un écran compatible, c’est assez parlant.
Bonjour
Je tiens a te remercier pour la news !
Depuis la mise à jour mon écran externe ne se mettait plus en veille quand je mettais mon MacBook Pro en veille (dernier modèle Intel avant le M1). L’écran restait allumé avec une image noire et le rétro éclaire allumé
Désactiver le Free Sync le remets en veille normalement.