Triple buffering in Counterstrike: Source

SonicIce

Diamond Member
Apr 12, 2004
4,771
0
76
I tried to enable it though the nvidia driver but I still got that framerate halving thing when vsync is on. Do you need to enable it in the game somehow?
 

Trevelyan

Diamond Member
Dec 10, 2000
4,077
0
71
Okay, I've done some research on this too and am still trying to come up with a solution.

Basically, drivers can only force triple buffering in OpenGL mode, NOT in Direct3D, which is what CS:S uses. The game also doesn't have a setting for triple buffering built in, so the only way to enable triple buffering is through an external program:

http://www.nonatainment.de/web/DirectXTweaker/Download/tabid/58/Default.aspx

So, download DirectX Tweaker and extract and run it. Then, setup a profile for the Steam.exe file, and go down to the plugins and activate "Present Charger" and set the "Count" to 2. That should do it, and just make sure vsync is enabled in-game and in your drivers and then run the game through the DirectX Tweaker program.

I just tried it and it works! My framerate stays steady at 60fps w/ no tearing, and it drops to 45-50fps, meaning that triple buffering is working.
 

SonicIce

Diamond Member
Apr 12, 2004
4,771
0
76
Originally posted by: Trevelyan
Okay, I've done some research on this too and am still trying to come up with a solution.

Basically, drivers can only force triple buffering in OpenGL mode, NOT in Direct3D, which is what CS:S uses. The game also doesn't have a setting for triple buffering built in, so the only way to enable triple buffering is through an external program:

http://www.nonatainment.de/web/DirectXTweaker/Download/tabid/58/Default.aspx

So, download DirectX Tweaker and extract and run it. Then, setup a profile for the Steam.exe file, and go down to the plugins and activate "Present Charger" and set the "Count" to 2. That should do it, and just make sure vsync is enabled in-game and in your drivers and then run the game through the DirectX Tweaker program.

I just tried it and it works! My framerate stays steady at 60fps w/ no tearing, and it drops to 45-50fps, meaning that triple buffering is working.

you obviously put some work into your reply! thanks i'll try it
 

destrekor

Lifer
Nov 18, 2005
28,799
359
126
nvidia's drivers also allow triple buffering to work
although im not so sure they had been working for me, so maybe strike that ;)
 

SonicIce

Diamond Member
Apr 12, 2004
4,771
0
76
Originally posted by: destrekor
nvidia's drivers also allow triple buffering to work
although im not so sure they had been working for me, so maybe strike that ;)

did u read my original post?
 

destrekor

Lifer
Nov 18, 2005
28,799
359
126
ah, sry skimmed it and that little part got skipped
im an idiot..
nevermind then lol
 

VIAN

Diamond Member
Aug 22, 2003
6,575
1
0
Nvidia's Triple Buffering works for both API's. However, if you lack the video memory to enable Triple Buffering(which you most likely due with a 128MB and CS:S), then it will disable itself instead of giving you stuttering performance. By lowering your settings, it should enable itself.

I'll try it on my 7800GT for you.
 

kylebisme

Diamond Member
Mar 25, 2000
9,396
0
0
Nvidia's triple buffering option works great for OpenGL games, but I have never seen it change anything in D3D. Also, I'm not sure using DirectXTweaker would be a good idea on VAC servers, it might look like a hack to the anti-cheat software.
 

VIAN

Diamond Member
Aug 22, 2003
6,575
1
0
Doesn't seem like it works, but the only thing that could really bring it to it's knees was 1152x862 with SSTRA 8xAA 16xAF. There was one part where it gave me half the framerate that I was using.

Triple Buffering never really worked for me in D3D games like FEAR as well. I'v never used it on OPenGL game either though. When I contacted the FEAR team, I think it was them, they said that I needed to lower my resolution so that I could get Triple Buffering to work. THey cited the reason I spat in my last post.
 

RampantAndroid

Diamond Member
Jun 27, 2004
6,591
3
81
I've never bothered to use Vsync...I have never had tearing in my games...so I don't know...is there any reason you are using it?
 

kylebisme

Diamond Member
Mar 25, 2000
9,396
0
0
Originally posted by: VIAN
Doesn't seem like it works, but the only thing that could really bring it to it's knees was 1152x862 with SSTRA 8xAA 16xAF. There was one part where it gave me half the framerate that I was using.

Triple Buffering never really worked for me in D3D games like FEAR as well. I'v never used it on OPenGL game either though. When I contacted the FEAR team, I think it was them, they said that I needed to lower my resolution so that I could get Triple Buffering to work. THey cited the reason I spat in my last post.
I think that is just tech support being stupid and pushing the problem off on whatever they can come up with. The obvious solution is to patch the game to make triple buffering a toggleable option like it is in Unreal Engine games and such.
 

kylebisme

Diamond Member
Mar 25, 2000
9,396
0
0
Originally posted by: RampantAndroid
I've never bothered to use Vsync...I have never had tearing in my games...so I don't know...is there any reason you are using it?
Tearing always happens without vsync, but only some of us notice it. But yeah, stopping tearing is pretty much all vsync is for, if tearing doesn't bother you then you are best leaving it off.
 

RampantAndroid

Diamond Member
Jun 27, 2004
6,591
3
81
Well, there has never been a case when I have noticed tearing?! Any place that has a fraps video of it?
 

kylebisme

Diamond Member
Mar 25, 2000
9,396
0
0
Fraps records a full frame at a time, so it tearing can't be recorded onto a video like that. Besides, even if was captured on a video it wouldn't look any different than it does in game so if you don't notice it in game you surely wouldn't notice it in the video either.
 

RampantAndroid

Diamond Member
Jun 27, 2004
6,591
3
81
well...describe it then please? I know what tearing is supposed to be...but for the life of me I cannot remember ever seeing it...(when the framerate goes above the refresh rate, right?)

Thanks.
 

kylebisme

Diamond Member
Mar 25, 2000
9,396
0
0
It happens any time the framerate isn't syncronized with the vertical refresh rate. Above, below, or right on framerate; all the same you will get tearing if the frames don't swap at the exact same moment as a new refresh starts.
 

SonicIce

Diamond Member
Apr 12, 2004
4,771
0
76
Originally posted by: TheSnowman
It happens any time the framerate isn't syncronized with the vertical refresh rate. Above, below, or right on framerate; all the same you will get tearing if the frames don't swap at the exact same moment as a new refresh starts.

you're right
 

SonicIce

Diamond Member
Apr 12, 2004
4,771
0
76
Originally posted by: VIAN
Nvidia's Triple Buffering works for both API's. However, if you lack the video memory to enable Triple Buffering(which you most likely due with a 128MB and CS:S), then it will disable itself instead of giving you stuttering performance. By lowering your settings, it should enable itself.

I'll try it on my 7800GT for you.

it will enable itself? i will test this

edit: your right it doesn't work.
it would be completely stupid though because if you lowered the settings to get triple buffering to work then you would be getting high framerates anyway and you wouldn't even need it anymore :confused::confused:
 

SonicIce

Diamond Member
Apr 12, 2004
4,771
0
76
Trevelyan's tip indeed worked for me, but performance was still a tad lower than without vsync. but tearing was eleminated and the framerate was not a multiple or my refresh rate.
 

Trevelyan

Diamond Member
Dec 10, 2000
4,077
0
71
Originally posted by: SonicIce
Trevelyan's tip indeed worked for me, but performance was still a tad lower than without vsync. but tearing was eleminated and the framerate was not a multiple or my refresh rate.

Great! Glad you got it working.

Of course, game developers really need to get into the habit of having not only Vsync options, but triple buffering options as well. The two go hand in hand...