Not a simple answer
We use some captured video footage to try and demonstrate effects of Vsync and frame rates on animation smoothness.
After publishing the Frame Rating Part 3 story, I started to see quite a bit of feedback from readers and other enthusiasts with many requests for information about Vsync and how it might affect the results we are seeing here. Vertical Sync is the fix for screen tearing, a common artifact seen in gaming (and other mediums) when the frame rendering rate doesn’t match the display’s refresh rate. Enabling Vsync will force the rendering engine to only display and switch frames in the buffer to match the vertical refresh rate of the monitor or a divisor of it. So a 60 Hz monitor could only display frames at 16ms (60 FPS), 33ms (30 FPS), 50ms (20 FPS), and so on.
Many early readers hypothesized that simply enabling Vsync would fix the stutter and runt issues that Frame Rating was bringing to light. In fact, AMD was a proponent of this fix, as many conversations we have had with the GPU giant trailed into the direction of Vsync as answer to their multi-GPU issues.
In our continuing research on graphics performance, part of our Frame Rating story line, I recently spent many hours playing games on different hardware configurations and different levels of Vertical Sync. After this time testing, I am comfortable in saying that I do not think that simply enabling Vsync on platforms that exhibit a large number of runt frames fixes the issue. It may prevent runts, but it does not actually produce a completely smooth animation.
To be 100% clear – the issues with Vsync and animation smoothness are not limited to AMD graphics cards or even multi-GPU configurations. The situations we are demonstrating here present themselves equally on AMD and NVIDIA platforms and with single or dual card configurations, as long as all other parameters are met. Our goal today is only to compare a typical Vsync situation from either vendor to a reference result at 60 FPS and at 30 FPS; not to compare AMD against NVIDIA!!
In our initial research with Frame Rating, I presented this graph on the page discussing Vsync. At the time, I left this note with the image:
The single card and SLI configurations without Vsync disabled look just like they did on previous pages but the graph for GTX 680 SLI with Vsync on is very different. Frame times are only switching back and forth between 16 ms and 33 ms, 60 and 30 instantaneous FPS due to the restrictions of Vsync. What might not be obvious at first is that the constant shifting back and forth between these two rates (two refresh cycles with one frame, one refresh cycle with one frame) can actually cause more stuttering and animation inconsistencies than would otherwise appear.
Even though I had tested this out and could literally SEE that animation inconsistency I didn't yet have a way to try and demonstrate it to our readers, but today I think we do.
The plan for today's article is going to be simple. I am going to present a set of three videos to you that show side by side runs from different configuration options and tell you what I think we are seeing in each result. Then on another page, I'm going to show you three more videos and see if you can pinpoint the problems on your own.
Battlefield 3 – 2560×1440 – Ultra Settings
Our first video comparison will look at two fixed frame rate runs of a portion of Battlefield 3, one at 60 FPS consistently and one at 30 FPS consistently. The first question I'll want to address is on the hardware behind these "reference" runs. While I will tell you we used Titan cards in SLI for our recordings, the truth it matters very little which configuration we used to get these results, as the goal was to have so much additional performance that we didn't ever worry about frame rates falling below the Vsync rates. By enabling standard Vsync we were able to capture a steady 60 FPS result and with NVIDIA's half-refresh rate Adaptive Vsync I could capture a solid 30 FPS result.
Download the 250MB MP4 from Mega.co.nz
Reports from most users are telling us that you NEED to download these files for a solid comparison!
Battlefield 3 – 60 FPS vs 30 FPS Comparison
You should be able to tell pretty easily that the left hand side of this video is the 60 FPS version and the right hand side is the 30 FPS version. The animation on the left is clearly smoother though neither has any "stutter" or variance in the frame rate. Yes, the right side won't look as good in comparison, but when viewed on its own (cover the left side with a piece of paper) and it should look great in real time and lower speeds.
In data form, this is what this comparison looks like:
The black line is nearly completely static at 16 ms frame times (only a single frame time spike to the higher 33 ms rate) resulting in a completely smooth 60 FPS animation rate on the screen. Our orange line shows the result of Adaptive half-refresh rate settings from NVIDIA's control panel giving us a static 30 FPS (33 ms) animation rate, with one instance of higher / lower frame times.
Our second video will now bring in a typical graphics card configuration with standard Vsync enabled and compare it to the 60 FPS result above. In this case the test is using a single Radeon HD 7970 GHz Edition card but again this could be any card, in any game at any settings that has frame rates under the maximum refresh rate of your display for significant amounts of time.
Download the 250MB MP4 from Mega.co.nz
Reports from most users are telling us that you NEED to download these files for a solid comparison!
Battlefield 3 – 60 FPS vs Standard Vsync Comparison
In this video, the 60 FPS result is on the left and the HD 7970 running standard Vsync is on the right hand side. You should be able to see at real time the difference in smoothness between these two different user experiences and it will be more apparent when we slow down the video to 50% and 20%.
What does this look like in data form?
The black line is our 60 FPS static reference video while the orange line represents the standard Vsync run with the Radeon HD 7970 card. What kind of appears as "blocks" of orange on the graph is actually very quick and repeated variation in the instantaneous frame rate of 16 ms and 33 ms. This is due to the the function of Vsync that forces the frame to only be displayed at each refresh cycle of the display. In the first 20 seconds of the game, Battlefield 3 with these settings and this hardware is switching between 60 FPS and 30 FPS pretty regularl,y and because of that you see the differences in animation smoothness above.
What is maybe most interesting is our final video that compares a flat 30 FPS to the same Vsync result shown above.
Download the 250MB MP4 from Mega.co.nz
Reports from most users are telling us that you NEED to download these files for a solid comparison!
Battlefield 3 – 30 FPS vs Standard Vsync Comparison
The left hand side is the static 30 FPS result and on the right again is the Vsync run from the Radeon HD 7970 GHz Edition. Comparing the video in this case is much more interesting as in my experience there are some divided opinions. In a purely mathematical view the screen on the left should be "smoother" than the animation on the right hand side, even though on average it is running at a lower frame rate per second. However, the Vsync result has variance in frame times and thus you can see some patterns to the frames that don't exist at static 30 FPS or 60 FPS results. It kind of halts, or appears to freeze some times as a result of seeing frames at 16 ms, 16 ms, 16 ms, 33 ms, 16 ms, 16 ms…
Maybe looking at the data will help describe the phenomenon.
Clearly the black line of frame times is the same or slower than every instance of the orange line that represents the Vsync video output. However, the black line is consistently at 30 FPS while the orange line varies between 30 FPS and 60 FPS. Those periods of 60 FPS visuals are definitely smoother than the 30 FPS result (as we showed you in the first video on this page) but the variance in frame rates is actually more noticeable than you might have otherwise realized.
Despite all the arguing back and forth on what the limit of frame rate perception of the human eye is, there is one thing that is true without doubt – the human eye and brain can detect very subtle changes in animations pretty easily. Looking at a five second animation at 55 FPS and then 60 FPS, you'd be hard pressed to tell which is which. But if you see a video running at 60 FPS that suddenly drops to 30 FPS and you can clearly see the effect.
Now comes the real debate – which side of the video above is better? "Better" is a term that has many meanings and I don't have any doubts that there will be variance in answers from our readers across the world. I fall on the side of more static frame rate – consistent 30 FPS performance is better than what we have in many cases with traditional Vsync.
Now, on the next page, we are going to present the same videos and data but without telling you which result is which.
^^^…lol
^^^…lol
Ryan, thanks for doing this
Ryan, thanks for doing this work.
I’m not sure you will belive me, but when I have vsync disabled, I can tell with my eyes when my games are hitting exactly 60fps, plus or minus 3 or 4. I can do it every time, all the time, and I use fraps to check. The motion “clicks” into smootthness, often for only a second or two, but long enough for me to glance at my fraps readout and see that the number is between 57-63 every time. Is this because the tear lines are showing up at the very top or bottom of the screen (where I’m not looking?.
Please remove the 50% and 20%
Please remove the 50% and 20% from the blind test. The whole point is to see if you can see a difference between 60 and 30 FPS, so slowing it down changes the scenario completely. It just makes the file size larger for no benefit. The constant 60 FPS was best, the 30 FPS was worst and the v-sync was in between. But who runs v-sync if you cannot maintain >60 FPS anyway?
Just fuck of pcper and end
Just fuck of pcper and end the witch hunt against AMD. You don’t even know how to use a fucking computer. You can create frame latency issues in bf3 with Nvidia or AMD cards but not knowing how to use Vsync or in the case of knowing what you are doing reduce frame latency issues with it. If you fucking morons don’t know how just stop writing these articles seriously. The AMD witch hunt is bullshit and needs to end.
I can assure you, your frame rating results for BF3 are wrong and you don’t know how to use Vsync.
Stupid troll will troll.
Stupid troll will troll.
I still don’t get the point
I still don’t get the point of all of this?
I have a GTX 690, how do I set it up? What is the “proper” pcper method of setting this up so it runs the way you want / expect it to?
Same goes for 7970CFX…
I am not trying to be weird, just saying, you are puking out all of this info, please give me something I can use, tell me how to best setup my rig.
This was a subjective test.
This was a subjective test. It is to show you what different refresh rates look like with v-sync on. Do you notice stuttering when you are not maintaining a constant FPS? Everyone would likely agree that solid 60 FPS with v-sync on looks the best, but do you find solid 30 FPS with v-sync to be better than 40-50 FPS with v-sync? Some people do, some people don’t, but it does show the weakness of v-sync regardless.
So, I think something’s wrong
So, I think something’s wrong with the BF3 videos, or at least BF3-60v30.mp4 that I downloaded.
The phenomenon I’m referring to is easily seen between 2:03 and 2:10 of said video, when looking at the tile around the door that you’re turning into on the left side and the rug on the floor in the kitchen.
On the left side of the video, from the 60 FPS test, both the tile and the rug stay crystal clear with every frame. On the right side, the 30 FPS part, there clearly is some form of motion blur applied. The tile, the rug, in fact everything but the gun is blurred while the player is turning left.
Just pause the video at 2:08~2:09 and have a direct comparison – clear tile and textures on the left, motion-blur on the right:
http://imgur.com/2jaftwP
So, was there a mix-up with different BF3 settings, is this a artifact of the video pipeline? And is that video still a valid basis for comparison?
The download site Mega has
The download site Mega has changed it’s terms of service. Two days ago, I was able to download the Battlefield 3 comparison video files. Today, the download site is claiming this:
“Please update your browser. Warning: You are using an outdated browser that is not supported by MEGA. Please update your browser and make sure that you keep the default settings.”
This is completely untrue since I have done nothing in the last two days in regards to my browser which is IE 10. Mega only gives me the option of downloading and installing Google chrome. I will not be forced to install that browser just to see the Sleeping Dogs comparison videos. Please inform Mega that this is completely unacceptable behavior to viewers of PC Perspective. Thank you.
60 vs 30 60 wins.
30 vs vsync
60 vs 30 60 wins.
30 vs vsync 30 wins.
60 vs vsync tough call but 60 wins BARELY. I can only tell the difference when you turned the camera at 20%.
Good article but what I miss
Good article but what I miss is a game test with v-sync enabled with triple buffering build in game. World of Warcraft is good example of this. It runs smoothly without tearing even if v-sync is enabled thanks to triple buffering.
Most games do not have a way
Most games do not have a way to force triple-buffering, but it is pretty safe bet that if a game runs in the 40-50 FPS range with v-sync on, triple buffering is being used.
Triple buffering does not fix the problem v-sync causes, in which some frames take 16.7ms to display, and others take 33.3ms of time to display. It can’t. It is not possible. Triple buffering makes it possible for frames to be rendered while the current frame is waiting to be sent to the frame buffer. Without triple buffering, you end up forcing the GPU to wait until the previous frame is displayed, before it can create a new frame, resulting in a constant 30 FPS, even if 50 is possible.
The comparison you want is
The comparison you want is the constant 30 FPS example, compared to normal v-sync on the 7970. The constant 30 FPS with v-sync is like not having triple buffering, and the normal v-sync on the 7970 is like having triple buffering, because it does.
Assuming it’s 33ms and not
Assuming it’s 33ms and not 33.33ms, Isn’t the best solution to this is to simply cap at a divisible of 16.5ms? That’s what I do and it feels smooth as butter.
16.5×4 – cap at 66
8.25×16 – cap at 132
Which will obviously give us an obvious multiple for each step. If you wanted to play at 30fps you’d cap at 33 – play double that frame rate, you need to cap at 66 – on a 120hz monitor you’d need to cap at 132 – and so on.
The game engine would be sending you frame-per-frame. It seems to improve hit-detection and all that other crap too.