https://www.idblanter.com/search/label/Template
https://www.idblanter.com
BLANTERORBITv101

Tearing, VSync, Fast Sync, GSync, Freesync Explained!

Wednesday, December 4, 2019

Tearing, VSync, Fast Sync, GSync, Freesync Explained!

Hey Guys,  Areha here.
In this post I'm going to try and explain  Tearing, what causes it and what exactly VSync,  GSync, Freesync and FastSync do to stop it  and how they differ.
If you're not a Rocket League player don't  worry.
This video has some Rocket League footage  as examples but everything I'm going to say  stays true for other games.
Just a quick note on the side.
I've uploaded another video today with a big  announcement, so make sure to check that out.
So what is tearing?  Tearing is what you should see on screen right  now.
Can't see it?  Ok let's pause.
This horizontal line on screen is a tear.
It means you're seeing the top half of one  frame and the bottom half of the next frame  at the same time.
You might already be used to it but it's a  visual artifact that is definitely unwanted.
So why does that happen when you game?  For that I need to explain some of the basics  of how the monitor and graphics card work  together.
In order for the monitor to know what it's  supposed to display, the graphics card keeps  a constant copy of the current image in a  part of it's memory.
The so called front buffer.
All the monitor does, is read from the front  buffer, pixel by pixel, line by line, frame  by frame.
The so called refreshrate is just the amount  of full frame cycles that the monitor goes  through every second.
Alright so far, but for games we don't want  to display a static image but an updated one  as often as possible.
For that the GPU renders new images in the  back buffer.
Whenever a frame is done rendering the graphics  card will do a page flip.
The 2 buffers are in reality identical and  all that's done in a page flip is flip the  definition of the buffers.
And here we see the problem.
The monitor just keeps on reading what is  considered the front buffer and starts getting  a new frame in the middle of the screen.
And unlike what a lot of people claim on the  internet, this can obviously happen at any  framerate.
If the framerate is half of the refreshrate  then there will be one tear every second frame.
If it is twice the refreshrate then you'll  have 2 tears on every frame.
This may sound like high framerates make the  problem worse but in a game that is not true,  because if you're outputting more frames per  second, then everything moves less between  the frames so each tear is less noticeable.
But what about eliminating tears altogether?  For that there is VSync.
The way it works is pretty simple.
Instead of instantly doing a page flip once  a frame is done rendering, the graphics card  waits.
The monitor then sends a VSync signal once  it reached the end of a full refresh, allowing  the page flip to happen at just the right  time.
Sounds great, but for gaming there are a couple  of problems with this approach.
The graphics card is waiting on the monitor  and the processor is then waiting on the graphics  card.
This forces the entire pipeline to slow down  causing input lag.
How much exactly that is in Rocket League  is something that I'll test in a future video  for which I've bought a highspeed camera.
Additionally to the lag, when your computer  just takes a tiny bit too long to render a  frame then the monitor will display the previous  frame for an entire new refresh cycle.
That means you're trading a major stutter  for a tear.
So pick your poison.
To solve the input lag problem there is NVIDIA  FastSync.
It introduces a second back buffer.
This allows the GPU to alternate between the  two back buffers for rendering, never needing  to slow down.
Whenever the monitor finishes a refresh, the  front buffer will then switch with the newest  finished image.
However, this still does nothing about the  stuttering issues and if you have the ball  stuttering around in Rocket League then that  could hinder you from estimating it's speed  or trajectory, making FastSync only really  viable if you get really high framerates.
And at that point you gotta ask yourself if  you can even notice the tearing.
That leaves us with GSync or what is essentially  the same idea for AMD cards, Freesync.
They do the opposite of VSync.
Instead of letting the GPU wait for the monitor,  the monitor waits for new frames from the  GPU.
So it only starts reading from the front buffer  if a new frame is available.
This means: No tearing, no added input lag  and less stuttering when you get unstable  framerates.
So there is only 1 minor issue with this technology.
Since the system is relying on the monitor  to wait for the graphics card, the monitor  needs to be capable of displaying more frames  than the graphics card puts out.
This can be forced by capping the framerate  below the refreshrate but as I said in my  input lag video, the more frames per second  you have, the less input lag you'll have.
For more information on how to set up GSync  perfectly I recommend reading the excellent  blurbusters articles, which I'll put in the  video description.
So these are all the options you have.
I personally am playing 250FPS with VSync  off because I don't notice any tearing with  that and it gives me the lowest input lag.
For Rocket League though the perfect setup  would most likely be one of the 240Hz GSync  or Freesync displays with the framerate capped  to 237.
The difference in input lag would be neglible  and it would prevent all tearing.
And it's a better experience in case of FPS  drops.
However, the price for GSync displays is very  high so that is not an option for many.