Question about V-Sync and Fraps

ar1speedboy

Reputable
Nov 24, 2014
36
0
4,540
OK so I overclocked my graphics card and I think that I pushed it too hard for too long because now I get screen tearing on Battlefield 4 even once I returned to stock speeds (which never used to happen) even though I never once go above 60fps on my 60Hz monitor. Strangely Battlefield seems to be the only game effected, which is weird.

Anyway I turned my V-sync on in Battlefield 4 which drops me to 30fps (a good 15-20fps decrease) which is a real shame but oh well it fixes the screen tearing at least. FRAPS isn't displaying a solid 30 like I thought it would, which I don't really understand...

So does FRAPS display what fps you are currently displaying or how many fps you should be displaying without V-Sync?
 
Solution


Yes, it still prevents tearing, but it does have a draw back.

Normally, if you were getting 40 FPS, your frame times are 25ms and it is fairly consistent. If you turn on V-sync, the tearing stops, but now your frame times swap between 16.7ms and 33.3ms. That results in stutter/judder, though everyone has their own sensitivities to it.

qubits

Reputable
Jan 6, 2015
366
0
4,810
it shows you your current fps. if it is just one game than it is probably nothing to do with hardware.

what gpu do you have? if it is nvidia you can turn on adaptive vsync.. if it is amd you can turn on triple buffering and either should help your fps
 

ar1speedboy

Reputable
Nov 24, 2014
36
0
4,540


I have an R9 270 from MSI.

What do you mean by my "current fps". Do you mean the fps I am displaying or what I should be displaying? On BF4 I'm playing at 30fps due to V-Sync but fraps is still showing numbers in the 40s and occasionally the 50s.
 

ar1speedboy

Reputable
Nov 24, 2014
36
0
4,540


I have an AMD FX-6300 (not overclocked) and a 1920x1080 IPS monitor. I play BF4 at 1920x1080 on Ultra settings (although the screen tearing never occurred until I began to overclock the card, and is still appearing even though I have returned to stock speeds). I get an average of 45-50fps, but when I turn V-Sync on it goes down to 30. FRAPS is still displaying a 45-50fps count though, which I find really confusing, especially since I know that I'm playing at 30fps because I can 'feel' it.
 


I take back my original thought. You simply have triple buffering on. Triple buffering doesn't force you down to 30 FPS, though you will still get stutter/judder.

If you dropped your hz to 30, then the reason for the higher FPS, is probably by the way Mantle handles V-sync with triple buffering. It would suggest it handles it just like OpenGL, which also will not cap you at your refresh rate, and instead, just ignores some of the completed frames, though they are still counted by the meter.
 

ar1speedboy

Reputable
Nov 24, 2014
36
0
4,540


I'm a bit confused about triple buffering. As far as I am aware V-sync caps your fps at the refresh rate of your monitor (in my case that's 60fps) but as soon as you go even one frame below 60 it will drop you to half of that, which in my case is 30fps.

So how exactly does triple buffering play into this? Is it enabled automatically when I enable V-sync in Battlefield 4 or is it something I have to do myself in some setting somewhere?

And should I have it enabled or disabled to enhance my experience?
 
Even without triple buffering, FPS vary, so you can go from 60, to 59 and back up to 60, resulting in high FPS, but let's look at it with your FPS instead.

Triple buffering gives the GPU 1 buffer that the monitor uses to display an image, and 2 buffers the GPU can create frames on. That means when the GPU is waiting to send one image to the front buffer, it can start creating a new frame in the 2nd back buffer. This prevents any loss of frame rate. However, the display time for each image might bounce between 16.7ms and 33.ms, resulting in some stuttering.

Most games do not give you an option to force triple buffering on or off. The game is simply built one way or another. SLI and Crossfire always have some form or 3 buffers as well, as each GPU gets its own back buffer to create frames.

The setting you see in the video card control panel only effects OpenGL, which is rarely used.
 

ar1speedboy

Reputable
Nov 24, 2014
36
0
4,540


Thanks for your response. I'm still a little confused though. Does triple buffering kick me from 60fps straight to 30fps like double buffering does?
 


No, it does not.

Because double buffering only has 1 back buffer to create frames on, when it can't create frames fast enough to reach 60 FPS, it ends up in a cycle of having to sit and wait for the next refresh, resulting in a constant 30 FPS. Because the 3rd buffer allows the GPU to begin the next frame while waiting to display the current one, the GPU is not held back, and able to maintain your normal FPS.
 

ar1speedboy

Reputable
Nov 24, 2014
36
0
4,540


Thanks a lot for answering, you're being a very helpful! I still have one question though. If it maintains my normal fps, what exactly is its purpose? Does it still prevent screen tearing?
 


Yes, it still prevents tearing, but it does have a draw back.

Normally, if you were getting 40 FPS, your frame times are 25ms and it is fairly consistent. If you turn on V-sync, the tearing stops, but now your frame times swap between 16.7ms and 33.3ms. That results in stutter/judder, though everyone has their own sensitivities to it.
 
Solution

ar1speedboy

Reputable
Nov 24, 2014
36
0
4,540


Now I understand. Double buffering Vsync is what makes you jump between 30 and 60fps, but due to the extra buffer in triple buffer Vsync you maintain your normal fps, but with increased stutter. This probably explains how I was 'feeling' 30fps despite not actually being on 30fps, it's probably because of the stutter I was feeling at the time.

But for me stutter > screen tearing any day, so I'll leave V-sync on. Thanks again for your help!