BlackCapedManX on 13/12/2003 at 05:03
What in the bloody hell does vsync do? I just DLed the new patch, hoping that some unmentioned change would make the graphics less abusive to my system and I noticed that I had vsync checked off. So, having no idea what it does, I unchecked it. The game now runs more than fine in 1024x768 and more or less bareable in 1280x1024 (a res to date that I've never used in a game, even though my last three cards are probably capable of handling it.) Does like vsync mean "game perfomance = suck" when checked or what?
(For those of you who still haven't seen my system stats:
AMD Athalon XP 2500+ (1.8ghz)
ATI Radeon 2600 Atlantis (256mb DDR RAM)
ASUS A7N8X Deluxe w/Nvidia Nforce2 chipset (and 1gb DDR RAM)
Epos Nix on 13/12/2003 at 05:22
vsync forces the game to run at or below your monitor's refresh rate to prevent screen "tearing" (a visual artifact that occurs when the game is running faster than your monitor can keep up). Turning it off really shouldn't affect performance at all, especially if the game is performing at fewer frames per second than your monitor's refresh rate (which is usually 60 or above). Typically the only people that turn it off are those who are benchmarking their system (so they can get more frames per second than vsync would usually allow).
dhaelis on 13/12/2003 at 05:29
Vsync is used to synchronise the output of your graphics card with the display of your monitor. What that basically said is that your video card waits on your monitor to draw the next line to be displayed.
EDIT: Damn, Epos beat me to it! :p
BlackCapedManX on 13/12/2003 at 05:50
A frame limiter then (correct me if this generalization is wrong). Maybe the one in DXIW uses up a helluva a lot of visual RAM or something, because I noticed a definate improvement (or maybe it doesn't actually sync correctly?)
Muzman on 13/12/2003 at 08:01
I've had Vsync have a pretty serious impact on performance in some games. You wouldn't think it ought to, but for some reason it does now and then.
heywood on 13/12/2003 at 16:23
Abysmal,
You've got it exactly right. Drivers usually select a refresh rate of 75 Hz or 85 Hz by default. With vertical sync turned on, that means you'll get frame rates of:
75, 37.5, 18.75, 9.375, or 4.6875 fps at 75 Hz
or
85, 42.5, 21.25, 10.625, or 5.3125 at 85 Hz
With vertical sync turned off, your frame rate isn't tied to the monitor refresh rate, so it can be anything. Turning it on can cause you to lose up to 50% frame rate at any particular moment, and it's especially noticeable when your frame rate is varying. Let's say your monitor refresh is 75 Hz and the frame rate of the game is varying between 30 and 40 fps. With vertical sync off, the frame rate can vary continuously up and down and degrades gracefully. With vertical sync on, you would see your frame rate bouncing back and forth between 37.5 and 18.75, and the sudden large changes can be quite annoying.
The downside of turning off vertical sync is that the framebuffer will switch from one game frame to the next in the middle of drawing the image on the screen, so during one monitor refresh cycle part of the screen will show the old frame and part of it will show the new frame. If you're moving, the images in the game won't be in quite the same place from one frame to the other, so you may momentarily see a small discontinuity or "tear" on the screen at the point where the framebuffer switched.
Normally, the tearing effect is a relatively minor distraction compared to the loss of frame rate and/or sudden changes in frame rate. So unless the frame rate of the game can run consistently faster than the monitor's refresh rate, it's usually better to disable vertical sync.
Banksie on 14/12/2003 at 22:41
That is only true if the game uses double buffering. Direct3D allows for triple buffering and that alleviates the 'halving' effect allowing for a much smoother drop in framerate. Now I have no idea if Deus Ex : Invisible War is coded to request a triple buffer, I suspect not. But that seems an obvious optmisation improvement for a patch if it isn't there.
heywood on 15/12/2003 at 15:42
Good point!
Although I still prefer to leave vertical sync off even when triple buffering is used. No matter what buffering scheme you use, if the card is rendering at a slower rate than the display refreshes, you'll get stuttering with vertical sync on. If you're getting 50 fps with triple buffering and the monitor refresh rate is 75 Hz, then the card renders two frames every 40 msec while the monitor refreshes three times in the same 40 msec. That means every other frame will be drawn twice - odd frames will be up for 20 msec and even frames will be up for 40 msec. That's more distracting to me than the tearing.
lame slug on 16/12/2003 at 18:50
interesting... when I was playing around with the demo files, I did something that dramatically increased my framerate and I couldn't remember what it was (I was too impulsive and changed every possible setting in the files (including min velocity for objects to stop sliding (3 parens, my lifetime natural language max!) to odd affect ) all at once.)
I've done some D3d programming, but never realized the step down rates associated with the vsync scheme. Where did you find that info?
Banksie on 16/12/2003 at 23:09
Quote:
Originally posted by lame slug I've done some D3d programming, but never realized the step down rates associated with the vsync scheme. Where did you find that info?
For me it was a result of programming on an Acorn Risc PC and directly controlling the screen refresh hardware. It probably doesn't get mentioned much because it is considered an obvious fundamental effect of Vsync driven frame buffer swapping.