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.
0 comments