V-sync

< Retour a l'index du glossaire

Le V-sync ou synchronisation verticale va limiter les FPS de la carte graphique pour les caler à la fréquence de rafraîchissement de l’écran. Cela afin d’éliminer le tearing. C’est donc l’écran qui donne le tempo à la carte graphique. Par exemple le V-sync limitera les FPS d’une carte graphique à 100, pour un écran réglé à une fréquence de rafraîchissement de 100 hz. En revanche la V-sync ne supprime pas le stuttering, quand les FPS passent en dessous de la fréquence de rafraîchissement. Il y a des inconvénients certains d’utilisés cette méthode, j’y reviendrais plus bas.

Comment ça marche ?

Sans le V-sync, la carte graphique produit un maximum d’image par seconde. L’écran quand a lui affiche un nombre d’images fixe, selon sa fréquence. Les déchirements interviennent quand les FPS sont désynchronisés et impairs par rapport à la fréquence de rafraîchissement. Ils sont surtout plus fréquents avec un taux de FPS élevés.  Dans ce cas de figure, lors d’une demande de l’écran, l’image reçue sera composée de deux ou plusieurs morceaux d’images différentes, selon le taux de FPS. Par conséquent il se crée une déchirure, un décalage dans l’image.

Le V-sync utilise deux tampons ou mémoire pour son fonctionnement. Le coeur du système c’est l’inversion des deux tampons de la carte graphique ou le page flipping. Quand une carte graphique a fini de calculer une image elle la place dans un tampon appelé le front buffer. Un autre tampon le back buffer permet de stocker progressivement l’image en cours de calcul. Quand cette tache est terminée, les deux tampons sont intervertis. C’est l’écran qui “demande” l’image à la carte graphique.

La V-sync va synchroniser les FPS avec l’écran où les réduire pour qu’il soit toujours multiple de la fréquence de l’écran. Ceci grâce à un signal envoyé par l’écran a la carte graphique, appelé vblank. Le vblank (vertical blank) représente le moment entre la fin de l’affichage d’une image et le début d’une autre. Un moment idéal pour éviter les problèmes ! . En conséquence les mises à jour de l’image du moniteur seront toujours faites à la fin du retournement des deux buffers, quand l’image est prête, plus de tearing ! .

C’est génial ! je peux activer le V-sync tous le temps alors ?

Dans certains cas cela peut être une bonne chose mais dans d’autres situations c’est quasiment la catastrophe. En fait elle comporte deux inconvénients. Premièrement on a vu plus haut que le nombre de FPS était synchronisé avec la fréquence de rafraîchissement de l’écran quand il était plus élevé. Le problème intervient quand le nombre de FPS est inférieur.

Quand on arrive à cette situation, il y a forcément des images qui mettent plus de temps à être calculé que le temps d’un rafraîchissement. Si le calcul d’une image dépasse (même légèrement) le temps d’un cycle, le GPU attendra le prochain !. Donc une image mettra deux fois plus de temps pour s’afficher. En d’autres termes le nombre d’images par seconde sera bridé de moitié !. C’est-à-dire 30 FPS dans le cas d’un écran a 60 hz avec une carte graphique qui génère entre 30 et 59 FPS. En outre si le frame rate continue de tomber, sous les 30 FPS, le bridage atteindra les 15 FPS, soit quatre fois plus de temps pour afficher l’image ! . En conséquence la fluidité, la réactivité en prendra un gros coup avec le stuttering exacerbé.

Le second souci avec la V-Sync c’est qu’elle augmente l’input lag.

Des autres solutions a part la V-sync ?

Il y a la limitation des FPS avec un logiciel, comme Riva Turner. C’est de la V-sync déguisée, ça ne marche pas complétement, surtout quand on passe en dessous de la limite de FPS. Il y aussi un mode borderless window, c’est votre jeu qui tourne dans une fenêtre, mais sans les bords. Comme pour la précédente méthode, c’est de la V-sync déguisée ! avec de l’input lag réduit bizarrement et seulement dans certains jeux.

L’adaptative-V-sync est une amélioration de la V-sync. Elle consiste à couper le V-sync quand les FPS tombent en dessous de la fréquence de rafraîchissement de l’écran. Cela ne protège alors plus du tearing mais permet de préserver au mieux la fluidité. Il y a aussi le triple tampon, en plus des deux tampons déjà existant, un troisième emplacement de stockage est rajouté. Il permet de diminuer le nombre de cas ou le GPU va attendre le prochain cycle d’affichage pour calculer une nouvelle image. Au final on y gagne en fluidité mais au prix d’une augmentation de l’input lag. Après il existe, depuis 2014, une solution définitive a tous ces problèmes : La G-Sync de Nvidia et la FreeSync d’AMD (adaptative-sync).

En conclusion pas de V-sync, de triple tampon ou encore de mode fenêtré pour les ceux qui cherchent aucun compromis sur l’input lag. En revanche pour ceux qui veulent absolument aucun artefact et non pas accès au G-Sync ou FreeSync, le triple tampon ou l’adaptative-V-sync est une bonne solution. Sinon c’est évident qu’il vos mieux désactiver la V-sync dans le cas d’une production d’images par seconde trop fluctuante et trop faible par rapport à la fréquence de votre écran.


Crédit vidéo : Nvidia.

Pour en savoir plus sur les écrans, vous pouvez consulter le guide sur les écrans PC.


Bien ou pas ?
Total : 1 - Moyenne : 5
Vous avez apprécié cet article ? merci de le partager.