Lorsqu’il fonctionne avec un temps de rafraichissement fixe, l’écran affichera toujours le nombre d’images par seconde correspondant à sa fréquence de rafraichissement (1 Hz = 1 image par seconde). Un rythme que la carte graphique ne voudra pas nécessairement respecter.
Par défaut, si chacun des deux éléments travaille à son rythme, on obtient inévitablement des problèmes de synchronisation entre les deux. Si l’image n+1 est calculée alors que l’image n n’a pas encore été transmise complètement à l’écran, ce dernier va recevoir une image composée du haut de l’image n et du bas de l’image n+1. Visuellement, cette désynchronisation se traduit par le « tearing » (déchirement) : un objet en déplacement se retrouve coupé en deux, la partie correspondant à la nouvelle image étant décalée par rapport à celle correspondant à l’ancienne image.
La parade historique à ce problème est la synchronisation verticale (V-Sync). Lorsque cette fonction est activée (elle est supportée par toutes les cartes graphiques d’aujourd’hui), le GPU synchronise le rendu sur la fréquence de rafraichissement de l’écran, et seules des images entièrement rendues sont ainsi transmises. Cette solution élimine le tearing, mais introduit un nouveau problème : lorsque la nouvelle image n’est pas prête à temps, l’image précédente est affichée une seconde fois.
Ainsi, si la carte graphique est capable d’assurer un rendu à une vitesse supérieure à la fréquence de rafraichissement, avec juste quelques passages en dessous de cette vitesse, ce défaut du V-Sync va se traduire par des micro-saccades (« stuttering »), tandis que si la carte graphique ne parvient que rarement à suivre la fréquence de rafraichissement, le nombre d’images par seconde tombera au premier diviseur de la fréquence inférieure à la capacité de rendu de la carte graphique. Par exemple, si la fréquence de l’écran est de 60 Hz alors que la carte graphique n’arrive à calculer que 55 images par seconde, l’écran n’affichera en pratique que 30 images par seconde. Si la carte graphique n’en calcule plus de 27, l’écran n’en affichera que 20, etc…
On notera que dans le cas où la carte graphique est suffisamment rapide, le V-Sync peut s’avérer bénéfique pour la consommation et le silence de fonctionnement, en plus d’éliminer le tearing. En effet, lorsque le GPU est capable de traiter bien plus d’images que ce que l’écran peut afficher, l’activation du V-Sync va forcer la carte graphique à se « reposer » entre deux images, et donc à consommer moins.
Finalement, la solution ultime pour résoudre tous les problèmes est la synchronisation totale entre l’écran et la carte graphique : dès qu’une image est calculée par la carte graphique, elle est envoyée directement à l’écran, quel que soit le temps écoulé depuis l’image précédente (dans une certaine limite tout de même, puisque l’électronique de l’écran et le débit de l’interface entre la carte et l’écran limitent le nombre d’images transmissibles et affichables).
Pour cela, deux technologies sont en concurrence : G-Sync chez NVIDIA, et FreeSync ( ou Adaptive-Sync) chez AMD. Les deux implémentations sont assez similaires sur le papier. G-Sync a l’avantage de mieux gérer les situations où la carte graphique n’arrive pas à suivre le taux de rafraichissement minimal de l’écran (G-Sync envoie chaque image deux fois à l’écran, pour simuler un taux de rafraichissement plus élevé, tandis que V-Sync se comporte alors comme du V-Sync classique), mais il s’agit d’une solution propriétaire, pour laquelle NVIDIA impose d’embarquer un circuit électronique maison dans l’écran. À l’inverse, AMD a fait le choix d’ouvrir FreeSync à tous, sans contrepartie et FreeSync a même été intégré à la norme DisplayPort 1.2a, sous le nom d’Adaptive-Sync. Il n’y a hélas pas d’écran compatible avec les deux technologies, et il faudra donc choisir votre camp.