En principe, les options graphiques d’un jeu vidéo nous mettent devant des choix simples. Si j’améliore la qualité des textures, par exemple, je sais que le jeu sera plus beau mais moins fluide. C’est implacable. Avec la synchronisation verticale (V-sync), tout est beaucoup plus nébuleux. Tentons de démêler ce gros sac de nœuds en commençant par rappeler comment communiquent une carte graphique et un écran. Si ce dernier fonctionne à 60 Hz (cas classique pour les écrans d’entrée et de milieu de gamme), cela implique qu’il va demander 60 fois par seconde à la carte graphique : « Dis-moi ce que je dois afficher. » La carte graphique lui envoie alors le contenu d’une zone spéciale de sa mémoire vidéo interne (la VRAM, indépendante de la RAM du PC) appelée le front buffer. Il contient les pixels de la dernière image dont la carte graphique a terminé le calcul. En coulisses, notre carte graphique dispose aussi d’une seconde zone mémoire, le back buffer. Elle y stocke les pixels de l’image en cours de calcul. Lorsque le back buffer est complet, elle intervertit les deux buffers. Le back buffer devient alors front buffer, prêt à être envoyé au moniteur – ça s’appelle le page flipping, si vous aimez les termes techniques. Jusque-là, c’est assez simple.
Transformé en archive gratuite
- Cet article, initialement réservé aux abonnés, est devenu gratuit avec le temps.
V-sync, G-Sync, FreeSync
Les aventures du Club des sync
Bienvenue dans le monde envoûtant de la synchronisation vidéo verticale. Un sujet mystérieux, exotique, passionnant, dans lequel on parle de triple buffering, de millisecondes par image, d’input lag, de VRAM et de tearing. Et toujours, en arrière-plan, cette question qui agite l’humanité depuis des millénaires : « Dois-je jouer avec la V-sync on ou off ? »
Pour les joueurs de FPS compétitifs, l’input lag est la huitième plaie d’Égypte.
En plein dans le buffer. Maintenant, voyons ce qui se passe quand vous désactivez la V-sync. Dans cette configuration, la carte graphique et le moniteur vivent chacun leur petite vie, sans aucune synchronisation. Imaginons que le jeu qui tourne ne soit pas très exigeant. La carte graphique réussit à fournir 80 images par seconde. Le moniteur, lui, ne va l’interroger que 60 fois par seconde (c’est-à-dire toutes les 16,67 millisecondes). Et c’est là tout le problème. Car au moment où le moniteur exige le contenu du buffer, notre carte graphique peut être surprise en train d’inverser son front et son back buffer, comme expliqué plus haut. Le moniteur recevra alors un bout d’image calculé au moment T, et un autre morceau calculé au moment T-1. Si les deux images sont très différentes (par exemple parce que le joueur a bougé ou tourné la tête dans un FPS), le résultat sera un paysage « déchiré ». C’est le tearing, un phénomène bien connu des joueurs, que certains trouvent proprement inacceptable. C’est pour éliminer cette abomination visuelle qu’on a inventé la synchronisation verticale. Avec la V-sync activée, le moniteur indique à la carte graphique, par un signal appelé vblank, le moment où elle peut inverser son front et back buffer. Un moniteur à 60 Hz enverra bien sûr 60 vblank par seconde. Cette technique élimine totalement le tearing.
Whiplash. Si la V-sync n’avait aucun défaut, je pourrais terminer l’article ici et vous dire « activez-la, c’est mieux ». Mais bien sûr, tout n’est pas si simple, et je vais avoir besoin de sept paragraphes supplémentaires pour débroussailler le problème... Allez, on se concentre, ça va être dense. Le premier défaut de la V-sync apparaît lorsque la carte graphique ne peut pas fournir 60 FPS. Imaginons qu’elle n’en génère que 52, car cette feignasse trouve qu’il y a trop de polygones à l’écran. Le moniteur lui demande un nouveau buffer complet toutes les 16,67 millisecondes, mais elle met 19,23 millisecondes (une seconde divisée par 52 images) pour en produire un. Dans ce cas-là, moniteur et carte graphique seront désynchronisés, comme si deux batteurs commençaient à jouer au même moment puis suivaient un tempo différent. La seule possibilité est de limiter le rendement de la carte graphique. Puisqu’elle ne peut pas « obéir » 60 fois par seconde au moniteur, on lui demande de ne le faire qu’une fois sur deux, donc 30 fois par seconde. Avec la V-sync activée, on joue donc à 30 FPS lorsque la carte graphique peut générer entre 30 et 59 FPS. Et si elle tombe sous les 30 FPS, le rythme du couple carte graphique-moniteur est encore divisé par deux, l’affichage perçu par le joueur passe donc à 15 FPS. C’est pour cela que de nombreux joueurs désactivent sans pitié la V-sync : ils préfèrent jouer avec une fluidité maximale plutôt que de brider leur carte graphique.
Afin de régler définitivement les problèmes liés à la V-sync, AMD et Nvidia ont renversé la table.
Les millisecondes du démon. Nous n’en avons pas terminé avec les problèmes de la V-sync. Car même dans sa configuration idéale – quand la carte graphique fournit 60 FPS sans broncher, en se synchronisant parfaitement au moniteur –, un autre défaut peut se faire sentir : l’input lag. Il s’agit d’un décalage entre les commandes du joueur (par exemple un mouvement de souris pour regarder à gauche ou à droite) et sa transcription à l’écran. Pour les joueurs de first-person shooters compétitifs, l’input lag est la huitième plaie d’Égypte, car ils sont persuadés que ces quelques millisecondes de retard peuvent faire la différence entre un match perdu et le titre de champion d’Overwatch de la région Poitou-Charentes. Il serait compliqué (et sûrement trop long) d’expliquer précisément pourquoi la V-sync crée de l’input lag, car ces raisons varient selon les jeux et leur pipeline de rendu 3D. Sur certains titres, l’input lag induit par la V-sync est difficilement perceptible, surtout si le jeu tourne à 60 FPS ou plus. Sur d’autres (Skyrim est un exemple bien connu), cette inertie molle se sent tout de suite. On a l’impression de jouer avec une souris en mousse flottant sur de la crème anglaise.
Rajoute donc un buffer, pour voir. Les fabricants de cartes graphiques ont bien essayé de trouver un remède à ces maux, en créant de petites astuces accessibles par les pilotes de la carte graphique. La première s’appelle adaptive V-sync. Son principe : la V-sync est activée quand la carte graphique fournit 60 FPS ou plus, afin d’éliminer le tearing, mais désactivée à la volée si le frame rate chute, pour éviter le bridage à 30 FPS. C’est un mélange étrange offrant le meilleur et le pire des deux solutions, et elle n’a pas beaucoup de succès. La seconde astuce est le triple-buffering. Vous vous souvenez de ces histoires de front et back buffer évoquées plus haut ? Le triple-buffering rajoute un second back buffer, que la carte graphique peut remplir tranquillement quand les deux premiers buffers sont prêts. Cela permet, en théorie, de réduire un peu l’input lag créé par la V-sync. En pratique, j’avoue n’avoir jamais ressenti la moindre différence.
À performances et caractéristiques identiques, les moniteurs G-Sync sont 30 % plus chers que les moniteurs FreeSync.
Mais si, je vous jure, ça marche. On trouve aussi quelques astuces de grand-mère qui tournent sur les forums spécialisés. La plus connue consiste à désactiver la V-sync tout en limitant le frame rate du jeu à 60 FPS (via un utilitaire externe comme Riva Tuner). Une sorte de fausse V-sync qui éliminerait le tearing... C’est du pipeau. Le verrouillage du frame rate peut être parfois utile pour réduire légèrement l’input lag avec la V-sync activée, mais ne supprimera jamais à lui tout seul le tearing. Je vous renvoie à cette étude chiffrée de 2015, qui détaille notamment les effets du triple-buffering et du verrouillage de frame rate sur l’input lag de quelques jeux. Depuis quelques années, on a aussi vu apparaître une option borderless window sur les réglages graphiques des jeux. Elle les fait tourner dans une fenêtre Windows sans bord, en plein écran et élimine totalement le tearing, même si la V-sync est (en apparence) désactivée dans le jeu. « Miracle ! », se sont dit certains joueurs ! Pas vraiment... Car dans ce mode, c’est Windows lui-même qui force en coulisses l’activation de la V-sync. En revanche, par rapport à une V-sync plein écran classique, l’input lag semble clairement réduit (mais toujours présent) pour certains jeux, comme le montre cette vidéo réalisée sur Overwatch.
Ce jour où l’esclave est devenu le maître. Jusqu’à un passé très récent, contrairement à ce que certains se sont forcés à croire (« il faut activer le quadruple-buffering tout en limitant le frame rate à 59,97 FPS puis nettoyer l’écran avec le sang d’une licorne sacrifiée au solstice d’hiver ! »), la solution miracle n’existait pas. La V-sync était devenue une affaire presque politique, avec ses sympathisants (« je ne supporte pas le tearing ! ») et ses adversaires (« je ne veux pas la moindre milliseconde d’input lag ! »). Tout a changé vers 2013-2014 grâce à l’apparition de deux technologies jumelles modifiant le fonctionnement des moniteurs informatiques : la FreeSync d’AMD et la G-Sync de Nvidia.
Afin de régler définitivement les problèmes liés à la V-sync, les deux fabricants ont renversé la table. Ils ont décidé que leurs cartes graphiques ne seraient plus les esclaves du moniteur : ce sont désormais elles qui définissent le rythme de l’affichage, et l’écran s’adapte à la volée. Prenons le cas d’un moniteur G-Sync à 165 Hz : si la Geforce qui lui est connectée produit 48 images par seconde, il tourne à 48 Hz. Si elle produit 137 FPS, il tourne à 137 Hz. En rendant variable le taux de rafraîchissement du moniteur, la synchronisation du couple devient parfaite. Fini le tearing, l’input lag, le stuttering. Plus besoin d’activer d’obscures options dans les pilotes de la carte graphique. D’un point de vue technologique, le combat a été gagné.
La taxe des 80 %. Du point de vue du consommateur en revanche, c’est une autre histoire. AMD l’a joué réglo avec sa technologie FreeSync, en en faisant un standard ouvert, libre et gratuit. N’importe quel constructeur peut aujourd’hui produire une carte graphique ou un écran FreeSync, sans payer un sou de royalties. Nvidia a été plus vicieux. Il faut dire que le fabricant californien a regardé sa part de marché chez les joueurs. Elle est d’environ 80 % (82,29 % très exactement, selon les stats Steam pour l’année 2017). C’est du quasi-monopole, et Nvidia en a tranquillement profité. Rien n’aurait empêché le constructeur de rendre ses Geforce compatibles FreeSync, mais il a choisi de les lier à sa technologie propriétaire G-Sync. Lorsqu’un fabricant de moniteurs produit un appareil compatible G-Sync, il doit y intégrer un petit module hardware (qu’il n’a pas le droit de modifier) et surtout payer des royalties à Nvidia. Le résultat de cette politique, c’est qu’à performances et caractéristiques identiques, les moniteurs G-Sync sont généralement 30 % plus chers que les moniteurs FreeSync, eux-mêmes déjà plus chers que les moniteurs classiques. Vous voulez un bel Asus 27 pouces en 2560 × 1440 avec un taux de rafraîchissement supérieur à 120 Hz ? Comptez 530 euros pour le modèle FreeSync, 680 euros pour le modèle G-Sync. Merci la taxe Nvidia.
Où est passé l’esprit Volvo ? À la décharge du fabricant californien, signalons tout de même que sa technologie est un peu plus complexe. Basée sur un hardware spécifique (là où le FreeSync n’est qu’un standard software), la G-Sync opère des optimisations pour réduire le phénomène de ghosting (la légère rémanence des pixels à l’écran) et améliorer la fluidité de l’affichage en cas de frame rate faible (sous les 30-40 FPS). Nvidia s’assure aussi de la qualité des appareils estampillés G-Sync en faisant passer aux écrans un examen de certification impitoyable. Reste que vous aurez du mal à voir la différence entre la version FreeSync et la version G-Sync d’un moniteur haut de gamme... Il est donc bien dommage que Nvidia se soit enfermé dans un format propriétaire, disons-le, un peu rapace. Ça me rappelle une anecdote. Lorsque les ingénieurs de Volvo créèrent la ceinture de sécurité moderne dans les années 1950, ils décidèrent de ne pas breveter leur invention. Elle allait sauver des vies, alors tout le monde devait pouvoir l’utiliser. La G-Sync, elle, nous sauve les pupilles. J’aurais voulu que Nvidia fasse comme Volvo, et que les possesseurs de Geforce puissent s’affranchir du tearing et de l’input lag sans fracture du portefeuille.