Triple Buffer + Vsync . . . Need tool?

jnick

2[H]4U
Joined
Sep 25, 2004
Messages
2,888
I've read a lot about this recently (Tripple Buff + Vsync) and decided to use the combo. However, is this tool actually necessary (found below) when using a D3D game, such as BF2? Or does the normal nVidia control panel pan out just fine?

Link

Thanks.
 
I've never heard of the tool you linked there, but I do know that Nvidia and ATI's drivers do not support Triple Buffering in D3D (only in OGL).
 
triple buffering never works for me. it noticeably increases input lag, but doesn't help the frame rate at all.
 
Essentially, if you're playing any D3D game, it's not meant to help, as the function in the CP for ATI and nVidia is only for OpenGL, hence this "patch". Still not sure whether to use it or not . . .
 
Never been a fan of triple buffering, either.

It *noticeably* increases input lag - makes it feel like you are mousing through mud or something - and brings so little to the table.

IMO, in games where tearing is bad enough you need to have v-sync on, the thing to do is to just lower graphics settings to the point where you have a usefully stable enough framerate.
 
dderidex said:
Never been a fan of triple buffering, either.

It *noticeably* increases input lag - makes it feel like you are mousing through mud or something - and brings so little to the table.

IMO, in games where tearing is bad enough you need to have v-sync on, the thing to do is to just lower graphics settings to the point where you have a usefully stable enough framerate.
what?? :confused: no. you get tearing because you are getting really good fps that exceed the refresh rate. if you are getting tearing and you lower the settings you will make the tearing worse NOT better. maybe i am misreading what you said.
 
trek554 said:
what?? :confused: no. you get tearing because you are getting really good fps that exceed the refresh rate. if you are getting tearing and you lower the settings you will make the tearing worse NOT better. maybe i am misreading what you said.

You get tearing because your FPS exceeds the refresh rate, true. So, what do you do? Turn on V-Sync - no more tearing.

Problem is, V-Sync, as implemented on ATI and nVidia cards, sucks. It does no buffering in advance to try and 'smooth out' the display, it just drops frames that were generated in excess of the refresh rate.

The net result is that the *average* framerate drops to WAY below whatever your refresh rate is - usually half, sometimes less (and yes, that may mean it is 25% or less of the performance with V-Sync *off*).

The idea of triple buffering is to render three frames in advance instead of 2, so when you have a high framerate spot, it can 'smooth out' the differences from the lower spots...since it has buffered the frames in advance.

V-Sync with triple buffering enabled drops the framerate, of course, but only to a spot somewhat less than the refresh rate.

IE., if you were getting 100fps in a game and terrible tearing on a 60hz LCD, turning on JUST V-Sync would drop you to 20-30fps with no tearing. Turning on V-Sync plus triple bufffering would drop to you 50-55fps with no tearing. But, per my complaint, the feeling that you were 'mousing through mud'. So, I'd rather just turn on V-Sync alone, and lower in-game graphics to the point where the drop isn't so awful. (Lowering resolution is usually the ticket, as it's the "minimum FPS" points that is what kills it...having higher minimums is better!)
 
name said:
I've never heard of the tool you linked there, but I do know that Nvidia and ATI's drivers do not support Triple Buffering in D3D (only in OGL).

They do support triple buffering in D3D, though neither card allows you to force it via the control panel (the setting only affects OpenGL, as far as I can tell). Triple buffering still works if you turn it on from the game's Options menu, or its config file.
 
dderidex said:
You get tearing because your FPS exceeds the refresh rate, true. So, what do you do? Turn on V-Sync - no more tearing.

Problem is, V-Sync, as implemented on ATI and nVidia cards, sucks. It does no buffering in advance to try and 'smooth out' the display, it just drops frames that were generated in excess of the refresh rate.

The net result is that the *average* framerate drops to WAY below whatever your refresh rate is - usually half, sometimes less (and yes, that may mean it is 25% or less of the performance with V-Sync *off*).

The idea of triple buffering is to render three frames in advance instead of 2, so when you have a high framerate spot, it can 'smooth out' the differences from the lower spots...since it has buffered the frames in advance.

V-Sync with triple buffering enabled drops the framerate, of course, but only to a spot somewhat less than the refresh rate.

IE., if you were getting 100fps in a game and terrible tearing on a 60hz LCD, turning on JUST V-Sync would drop you to 20-30fps with no tearing. Turning on V-Sync plus triple bufffering would drop to you 50-55fps with no tearing. But, per my complaint, the feeling that you were 'mousing through mud'. So, I'd rather just turn on V-Sync alone, and lower in-game graphics to the point where the drop isn't so awful. (Lowering resolution is usually the ticket, as it's the "minimum FPS" points that is what kills it...having higher minimums is better!)

This is mostly incorrect. VSync does not just throw out frames, it merely delays the buffer swap call until the monitor is ready to sync again. This means your framerate at worst will drop up to 50% from the sync rate, never more. e.g. if you have a 60Hz sync and are processing frames at 59 FPS, you'll run at 30 to match syncs. Anything from 30-59 FPS will get 30. From 15-29 you get 15, etc. You won't drop to 25% unless you're talking about framerates over sync rates (like when benchmarking, but who benchmarks with vsync?)

Its not that bad, and it does not drop frames, it simply holds up the current one until its ready. Just FYI.

edit: Also the buffering info is a bit incorrect. Double-buffering means there are two frame buffers - one you are working on now and one you are displaying now. When a frame is done rendering, they are just flipped (buffer swap). You see a frame immediatly when it is done rendering. You arn't rendering two frames back. Triple-buffering is used to allow the program to continue rendering after a swap request when vsync is on, as was mentioned. So instead of the program hanging waiting for the sync, it just goes to work on the third buffer while the second waits to swap with the first showing. This stabilizes framerates with vsync on, but since your actual display of rendered content is almost always at least one frame back, you get input/update lag.
 
Back
Top