Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

Question about Vsync

08-18-2013, 01:00 PM
Post: #1
Question about Vsync
I am using RadeonPro usually for it's Vsync rather than using in game settings. Yesterday i was testing Crysis 2 and Battlefield 3. RadeonPro has several Vsync settings, the ones I use mainly are "Always On" and "Dynamic V-sync"

"Always On" is supposed to be normal Vsync where, as I understand how Vsync works, as soon as the fps drops below 60, then Vsync should drop the fps to 30 in order to maintain Vsync.

However, I was not getting this behavior. When Crysis 2 and Battlefield 3 drop below 60 fps it was going to 59, 58, 55, 56 etc... instead of dropping to 30.

Note, I was not using Dynamic Vsync, but the regular "Always On" Vsync. Also, triple buffering is unchecked on RadeonPro.

I also just tested in Saints Row The Third and its the same thing. Even the FPS went into the 40's sometimes (according to RadeonPro fps counter) with Vsync "always on" enabled. But that should not be possible with normal Vsync if I understand it correctly.
Find all posts by this user
Quote this message in a reply
08-18-2013, 01:49 PM
Post: #2
RE: Question about Vsync
Are you using Crossfire?

RadeonPro Users Guide - RadeonPro Features
Find all posts by this user
Quote this message in a reply
08-18-2013, 02:35 PM
Post: #3
RE: Question about Vsync
No it's a single 7950
Find all posts by this user
Quote this message in a reply
08-18-2013, 02:45 PM (This post was last modified: 08-18-2013 02:45 PM by John.)
Post: #4
RE: Question about Vsync
Some games already use triple-buffering (BF3 is one of them and maybe Crysis 2 too)

RadeonPro Users Guide - RadeonPro Features
Find all posts by this user
Quote this message in a reply
08-18-2013, 04:59 PM
Post: #5
RE: Question about Vsync
Ok yes I think that is what is happening here. Also I think because the fps counter is not an *instant* thing but rather a fps average per second, you wont see the 60-30-60-30 drop reflected on the fps counter of RadeonPro. Does that sound correct?

Thanks for the support!
Find all posts by this user
Quote this message in a reply
08-18-2013, 05:22 PM
Post: #6
RE: Question about Vsync
You should see the fps dropping quickly from 60 to 30 when vsync is on and triple-buffering isn't being used by the game.

You're welcome Smile

RadeonPro Users Guide - RadeonPro Features
Find all posts by this user
Quote this message in a reply
08-19-2013, 05:45 PM
Post: #7
RE: Question about Vsync
Sorry to intrude on this post. I had a discussion about vsync + triple buffering in the bug report section not too long ago with John. But what you say can indeed happen with only double buffering. The common knowledge of people is that gpu/pc performance in 3D applications is measured in fps. But maybe fps is not accurate enough in the case of vsync to explain it right. The behaviour you are seeing is totally normal to happen even on double buffered games.
Vsync works in the way that the gpu waits for a signal from the monitor which states it is ready. This signal is being send all the time from the monitor and it is fully independant from the gpu as far as I know.
A gpu doesnt send 60 frames in one go to the monitor every second. It "sends" one frame every couple of milliseconds to the monitor. So it could even be that radeonpro or fraps or whatever reports 60 fps yet there have been drops.
See in a perfect world 60 fps means every frame would take less then 1000/60=16.66ms yet it could be one rendered to late like 20 ms and it has to wait on the next ssync. Which would be 16.66ms later this totals to 16.66+16.66=33.32ms. If the frame counter takes this measurement and substracts it of a second (1000ms) only 966.68ms remain in that time if the gpu is perfect for the rest of the time you can render roughly 58 other frames under 16.66 ms. So the late frame plus the other 58 frames would total to 59 fps. The drop to 30 fps is definitely there but that would mean EVERY frame in the entire interval of a second would be slower then 16.66ms and well faster then 50ms. Which is in many times not the case. Also understand that the value given in the counter of a frame monitoring program is not in sync with every frame so it can not be accurate by design if there would be a program (crysis has this information with a console command) showing every ms a frame took it would be much nicer though the human eye probably cant see the actual value a change can be easily seen.
I think this kind of drop to 30 fps knowledge is poorly explained and just some fast explanation a better one is to say a frame was not rendered fast enough to make the vsync. And so has to wait for the second vsync.
This 33.32ms waiting time is the stutter everyone feels which is annoying not 30 fps. A smooth 30 fps is sometimes even better then these periodic drops to 30 fps or better a slow 33.32ms frame.
If you want to do your own little test boot up fraps and use the frame time feature it supports and look how long every frame took to render that maybe clears a lot of stuff up. This is not realtime though and you have to look it up in a excel file thingy.

Long story short a drop to 30 fps is in my opinion a bad way to describe this problematic drop in smoothness with vsync. Though a short and quick one for tech-savvy people or people who just want a quick answer.

BTW even with triple buffering this drop is still there it is just less noticable as the gpu basically is buffering an extra frame so it smoothes out the faster frames with the slower frames giving a nicer descend to the slower ones. Though keep in my there is ALWAYS an extra frame of latency it is just so by design. Sometimes this is worth the tradeoff.

To maybe give some relevant problem microstuttering in crossfire/sli is a very simalar problem many people feel is annoying. Turning triple buffering on in that case might solve some problems there too.

Sources: countless (not really) hours of self-study over the internet so if you dont want to hear it from me I can understand.

Well there ya go I like big posts not the short ones. And I feel this subject is getting way too little attention in the gpu world as it is one of the most important things in my opinion.
Find all posts by this user
Quote this message in a reply
08-19-2013, 09:47 PM
Post: #8
RE: Question about Vsync
FPS is just a representation of value, internally it's calculated from the frame times.

RadeonPro Users Guide - RadeonPro Features
Find all posts by this user
Quote this message in a reply
08-20-2013, 02:24 PM
Post: #9
RE: Question about Vsync
yes it even is in my post I am just saying FPS is probably not the best way to explain the behaviour of vsync nice. With regards to the drop in smoothness (stutter). The FPS gets calculated by looking at how many frames were rendered in a certain timeframe (a second) but I am just saying this is not accurate enough in this case. Thats why I think frametimes are probably a better explanation. The same thing you dont use a regular ruler to get the dimensions off a sand particle. Its just not accurate enough.
Find all posts by this user
Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)