vsync = cuts fps in half?!

Oreo

Senior member
Oct 11, 1999
755
0
0
In games that use the Q3 engine the only way to get vsync i to use the r_swapinterval 1 command (to my knowledge). But when you use this command the fps drops from for example 95 to half of your refreshrate (42-43)! Why is this? Shouldn't the fps drop to 85 if that's what your monitors refresh rate is? Also if you do timedemos with the swapinterval command the fps is always half of without it. Another thing related to this is that the Voodoo3 DIDN'T take any fps hit at all with the swapinterval command. Why could that be?
 

DivideBYZero

Lifer
May 18, 2001
24,117
2
0
You are right when you say that with Vsync on, the max FPS will match the refresh rate of your monitor.

VSYNC is, more often than not, a driver thing, not a game thing. Although some games may control it via an option I believe that this is not the case in Q3.

Check the setting in your driver control panel. This is easy with NV cards, I have no knowledge of ATI.

Good luck
 

SlimHarpo

Member
Oct 1, 2000
72
0
0
r_swapinterval 1 causes my fps to drop to whatever my refresh rate is, not half of the refresh rate (I just now tested this in Q3 itself). r_swapinterval 2 gives the behavior you describe, which makes sense. What kind of vid card, drivers and OS do you have?
 

Oreo

Senior member
Oct 11, 1999
755
0
0
I've got a Geforce 256 DDR with the 23.11 dets on WinXP. SlimHarpo, do you get the same effect with the Geforce 2 MX (that the fps stays at the refreshrate)? I think that if you have an extremly fast card (like your G4) the fps stays at the refreshrate. The same thing happens to me if I stare into a wall in Q3, but as soon as the fps can't stay at or above 85 (or whatever refreshrate you use) it drops to half. I'll try it in Win98 too if there is any difference.
 

SlimHarpo

Member
Oct 1, 2000
72
0
0
You're right. I just tried again with 4x AA and max aniso at 1280 res. If I was facing a wall, fps stayed at 85. If there was any more to draw, fps dropped to 42 like you said. Never anything in between.

I can't really test on my machine with the mx card; it's a linux box with no monitor, no quake 3, and doesn't have the accelerated X drivers installed. Since you say this didn't happen with a Voodoo 3, I wonder if it is an issue with the way Nvidia implements a particular OpenGL call?
 

vedin

Senior member
Mar 18, 2001
298
0
0
Same thing happens to my Kyro 2. Only I can only do 72hz at 10x7, so when my frame rate drops in half, it hits 36. I thought it was a Kyro issue, but I'm glad it isn't. And for some reason 36 fps with it on, v-synch that is, looks much less smooth than 36 with it off. Go figure, that's the only homo thing I've found in Quake 3's engine so far.
 

JeremiahTheGreat

Senior member
Oct 19, 2001
552
0
0
Vsync will keep your FPS at your refresh rate..

however, if your video card cannot maintain that FPS is will be dropped to half the specified refresh rate.

If your video card cannot even maintain that FPS then is will be further dropped to quarter of the sepcified refresh rate.


Thats why most people leave Vsync off, you may get a little tearing but FPS is more constant.
 

Rick67

Senior member
Oct 11, 2001
475
0
0
I would leave it off except the tearing drives me feaking nuts. So why does FPS drop in half if your system can't stay at your set refresh rate?
 

BFG10K

Lifer
Aug 14, 2000
22,709
3,000
126
But when you use this command the fps drops from for example 95 to half of your refreshrate (42-43)!

In certain conditions vsync has the potential to reduce your framerates to half of your monitor's current refresh rate. This is one of the reasons why I never use it.

So why does FPS drop in half if your system can't stay at your set refresh rate?

Because if the current frame misses the current refresh cycle it has to wait for the next refresh cycle before it can be displayed.
 

Oreo

Senior member
Oct 11, 1999
755
0
0
But the Voodoo3 didn't have these issues at all in Q3. It stays at the same fps even with r_swapinterval 1. Is it because it's got a different architecture then other cards?

Is this vsync behavior just an opengl issue? In D3D games the fps don't hardly change at all if you have vsync enabled vs disabled (if your not getting in the hundreds of course).
 

SlimHarpo

Member
Oct 1, 2000
72
0
0
According to this page:: "There is no Vsync in OpenGL as a command. Most apps use the GLFlush command, sometimes followed by a GLFinish command......It's messy and highly card dependant."

This could explain the difference between the Voodoo and the Kyro/Geforces ("highly card dependant"). From reading that page, it sounds like D3D probably does have an actual vsync command, which might be why it doesn't show that behavior.