• Hey Guest. Check out your NeoGAF Wrapped 2025 results here!

PC techheads only: How to get smooth framerates

Thrakier

Member
Hello there,

I have no idea how many of you pc guys pay attention to actual frametimes, not only framerate. If you do care for framerate and you notice stutter besides that the game is failr stable vsynched at 60FPS, chances are the frametimes are off.

Now here is at thing which just works and I have no idea why, technically.

- use D3D Overrider for Triple Buffering (ok, that is a proven tool, nothing new)
- but then combine it with a framelimit of 60FPS in MSI Afterburner => why this changes anything, I don't know, because D3D Overrider itself already locks the framerate to 60FPS normally

If you need proof, here is a comparison of Killer is Dead @4K with a 970:

1Oud62z.png


Sorry for the typos, made it in paint and didn't notice it at first. Anyway, as you can see, the difference in frametimes is significant. Without Afterburner, there are tons of tiny jumps in the frametimes, resulting in minor stutter in the game. With the Framelimit set to 60, the frametimes are flatlining at 16.6ms => perfect, smooth experience.

I don't know why it is this way and I would be super glad if someone could explain it and could also explain why devs can't implement something like that IN their engine from the get go.
 
Is this something happening with all games or just with Killer is Dead?

Well, I can't test all games. ;) What I noticed though, even more so with the 970, that frame skipping, frame timing which is off some sort, happens quite often still. It is an issue which should be fixed on PC finally. But how so, I don't know.

I tested f.e. Splinter Cell Blacklist, but D3D overrider doesn't work there. Anyway, with the ingame vsync solution, no matter if borderless or not, I can get a 95% smooth image (always maintaining 60FPS, mind you), but not 100%. There is still a lot variation going on with the frametimes and in the game, you sometimes see a skipp. However, it isn't always there and it isn' reliable, so it's basically not possible to test this. What may seem to help is switching between Desktop and Fullscren, but that could just be my imagination. Hard to tell.
 
Hello there,

I have no idea how many of you pc guys pay attention to actual frametimes, not only framerate. If you do care for framerate and you notice stutter besides that the game is failr stable vsynched at 60FPS, chances are the frametimes off.

Now here is at thing which just works and I have no idea why, technically.

- use D3D Overrider for Triple Buffering (ok, that is a proven tool, nothing new)
- but then combine it with a framelimit of 60FPS in MSI Afterburner => why this changes anything, I don't know, because D3D Overrider itself already locks the framerate to 60FPS normally

If you need prove, here is a comparison of Killer is Dead @4K with a 970:

1Oud62z.png


Sorry for the typos, made it in pain and didn't notice it at first. Anyway, as you can see, the difference in frametimes is significant. Without Afterburner, there are tons of tiny jumps in the frametimes, resulting in minor stutter in the game. With the Framelimit set to 60, the frametimes are flatlining at 16.6ms => perfect, smooth experience.

I don't know why it is this way and I would be super glad if someone could explain it and could also explain why devs can't implement something like that IN their engine from the get go.
I use EVGA precision, and limit my framerate to 60 on all my games since Skyrim. Don't know why, but that's the only thing that could get me a solid frametime @ 60. I've been using it ever since.
 
I can confirm that the frame cap in Afterburner (RivaTuner Statistics Server) is amazing and handles consistent motion better than anything I've ever used. I use it for almost every game. Also, if you're trying to cap the frame rate under your refresh rate, for example at 60 on a 120hz monitor, to get best results you want to use the half-refresh Vsync option in Nvidia Inspector in addition to a frame cap in Afterburner.
 
Can't you just use the Framerate Limiter in nVIDIA Inspector?

Or is the one in Afterburner different somehow?

I don't know. The thing in question is, why does it make a difference anyway and why we need to use tools like that. It's 2014.

I can confirm that the frame cap in Afterburner (RivaTuner Statistics Server) is amazing and handles consistent motion better than anything I've ever used. I use it for almost every game. Also, if you're trying to cap the frame rate under your refresh rate, for example at 60 on a 120hz monitor, to get best results you want to use the half-refresh Vsync option in Nvidia Inspector in addition to a frame cap in Afterburner.

It's not magic sauce however if the engine is shoddy. For exampe, blacklist standing in a corner at stable 60fps will still produce shoddy frametimes.
 
Oh wow, I just tried this out with FUEL (one of my favorite games) and the improvement is MASSIVE. Before it was a stuttery mess despite running at 60 fps, but now it's smooth as butter. Thanks a lot for posting this fix!
 
Oh wow, I just tried this out with FUEL (one of my favorite games) and the improvement is MASSIVE. Before it was a stuttery mess despite running at 60 fps, but now it's smooth as butter. Thanks a lot for posting this fix!

You are welcome. Happy that it works. Still, it feels like fighting the symptoms instead of getting rid of the core problems and that is like fighting windmills.
 
Will this fix the stutter you get from limiting a game to 30 FPS? I notice that when I limit a game to 30 FPS on PC it stutters a lot more than a game limited to 30 FPS on console, even if it's 30 FPS locked.
 
More PC developpers need to focus on frame consistency. When the UWE-community DEV team started to check out those problems in NS2 the game just got soooooo much better.
 
It really depends of the game.

Some games have really perfect vsync implementation, some game don't.

My own criteria is:

Game vsync ALWAYS off.
Driver level vsync ALWAYS forced on.
If frametime is inconsistent:
* Framelimiter to refreshrate in nvidia inspector at game profile level (so no additional injection layer or programs is used)
* If not fixed, then framelimiter to refreshrate in RivaTunerSS at game profile level (is not necessary to load MSI Afterburner o another more complex application to do it).

If framerate in a game is sometimes under 60 fps but always over 50, then the best fix is to use a 50 hz resolution for constant 50 fps.

If the game has very few under refreshrate framerate moments -> force adaptative vsync

If the game is designed for 30 fps, then best solution is to force 1/2 vsync and framelimiter to 30 fps.

And no fraps, no other injection apart of SweetFX, no monitoring fans/ram/vram/cpu use. Only gaming.

That's all.


TL;NR: For Killer is Dead you don't need to limit framerate in nvidia profiles or external programs. That game runs at 30 fps in the default preset. You have to edit ini file to avoid the framerate cap. Instead of set smoothframerate to False, set maxsmoothedframerate to 60 and that's all.
 
Subscribed! Thanks for pointing this out, just upgraded my pc last month and I noticed stuttering in a few games even at 60 fps and had no idea why.
Will be testing it during the weekend and keep coming back to this thread
 
Using afterburner does make a big difference at 30 fps but i can't say i ever felt the need to use the limiting feature when v-synced games stay at 60. I am curious to try it now.
As for why it works so well i have no clue. Is there some public documentation on the inner working of RTSS and afterburner?
 
Depends on the game engine. Go limit the source engine to 60. Yeah, no thanks.

It really depends of the game.

Some games have really perfect vsync implementation, some game don't.

My own criteria is:

Game vsync ALWAYS off.
Driver level vsync ALWAYS forced on.
If frametime is inconsistent:
* Framelimiter to refreshrate in nvidia inspector at game profile level (so no additional injection layer or programs is used)
* If not fixed, then framelimiter to refreshrate in RivaTunerSS at game profile level (is not necessary to load MSI Afterburner o another more complex application to do it).

If framerate in a game is sometimes under 60 fps but always over 50, then the best fix is to use a 50 hz resolution for constant 50 fps.

If the game has very few under refreshrate framerate moments -> force adaptative vsync

If the game is designed for 30 fps, then best solution is to force 1/2 vsync and framelimiter to 30 fps.

And no fraps, no other injection apart of SweetFX, no monitoring fans/ram/vram/cpu use. Only gaming.

That's all.


TL;NR: For Killer is Dead you don't need to limit framerate in nvidia profiles or external programs. That game runs at 30 fps in the default preset. You have to edit ini file to avoid the framerate cap. Instead of set smoothframerate to False, set maxsmoothedframerate to 60 and that's all.

Two things though - I didn't find the Framelimit on driver level is as effective as in MSI afterburner. Also, it's a bit more time consuming to configure. Afterburner is just always there, for every game. The second thing, Nvidia Vsync on driver level is still just Double Buffering. Often the Triple Buffer by D3D Overrider makes the difference between "ok" and "super smooth".

But mind you: Even with Afterburner + D3D Overrider, I can't get every engine to produce smooth framerates. Like mentioned before, Splinter Cell consistently produces frametime judder even when I just stand in one spot, stare at a wall and the framerate is consisten 60FPS. The game is mostly smooth though, you wouldn't notice, but there are hiccups here and there and I do think that is related to the frametimes.
 
TL;NR: For Killer is Dead you don't need to limit framerate in nvidia profiles or external programs. That game runs at 30 fps in the default preset. You have to edit ini file to avoid the framerate cap. Instead of set smoothframerate to False, set maxsmoothedframerate to 60 and that's all.

Look closely at the screenshot. That's what I did. :) It's 60 and D3D Overrider both times, the only difference is with and without framelimit by Afterburner.
 
This isn't really anything new or a shocking revelation, PC games have had some framepacing issues for donkeys years and there have been multiple ways to sort it out each with varying degree's of success on a game by game basis but there is no one single catch all soltuion. Whether you're using the games built in frame rate limiters, through GPU drivers, 3rd party applications like RTSS and Dxotry they all have different quirks with different games. Same with Vsync (and I agree with Maldo here I next to never use what is offered in game) where D3DOverider is great and all that it has a fair few compatibility problems with modern stuff and doesn't work with 64bit processes. Radeon Pro does allow triple buffering in 64bit applications but I'm not a fan. Nvidia's adaptive Vsync is something I prefer if D3DOverrider isn't working.

Also really using something that monitors your game constantly whilst you're playing with the goal of trying to achieve smooth frame delivery is a bit bonkers as they are constantly snooping in the driver layer to see what's going on when reporting back framerate and frametimes sometimes themselves adding latency. Really after getting things set up turn off Afterburner, Precision, FRAPS etc even just the monitoring side of the application if you need them for overclocking. You can run RTSS (the actual application limiting the framerate) separately from Afterburner and no hiding the OSD is not stopping the application from monitoring your system.

End of the day you need to find out what works best for you and more importantly what works best for the game itself. But having a nice big box of tools to do the job when one doesn't work is a great plus of PC's.
 
I have definitely noticed this over the years and it always made me scratch my head. I will be getting 60fps in a game with vsync on, but it doesn't look nearly as smooth as, for example, The Last of Us remastered at 60fps on PS4. I always assumed this was a frame timing issue, but never knew how to fix it.

I also agree with a previous poster, even if I limit a game to 30fps, it doesn't feel anywhere near as smooth as a console game at 30fps, say something like Destiny.

BF4 seems to have fixed the frame pacing issues with the mega patch...before even though I was getting 60fps on Ultra, it didn't feel like 60fps.

Mordor definitely doesn't feel like 60fps. I have the frame limit set to 60, and adaptive vsync on in nvidia control panel, but I still can notice some frame drops.

You can tell its an issue too with games that have been out a while and are at this point fully optimized and patched. Far Cry 3 seemed extremely stuttery at 60fps near release. I've gone back and played it recently getting hyped for FC4, and the 60fps gameplay is buttery freaking smooth. They had to have fixed some frame pacing issues, no?

So, what is the general consensus then? What exactly do we need to set to limit the possibility of dropped frames.
 
Another option to check for is Raw Input, like in Source games. This can help eliminate a lot of stutter due to mouse tracking / mouse acceleration issues. You'll notice this most if pressing a movement key results in smooth motion but turning the mouse makes the screen go into a microstutterfest.
 
One question that I'll throw in here since it's related is that I have my nvidia drivers set to V-Sync "on" and Triple Buffering "on", just as my global profile. Is that a similar implementation to the overrider program?

I'll have to try out some frame-limiters as the OP mentions. I normally keep it uncapped, but I only have a 60hz monitor. If I cap it to 60, likely I will get the same benefit in smoother frametimes?
 
Another option to check for is Raw Input, like in Source games. This can help eliminate a lot of stutter due to mouse tracking / mouse acceleration issues. You'll notice this most if pressing a movement key results in smooth motion but turning the mouse makes the screen go into a microstutterfest.

Where? In the games option? Because that happens to me a lot.
 
Two things though - I didn't find the Framelimit on driver level is as effective as in MSI afterburner. Also, it's a bit more time consuming to configure. Afterburner is just always there, for every game. The second thing, Nvidia Vsync on driver level is still just Double Buffering. Often the Triple Buffer by D3D Overrider makes the difference between "ok" and "super smooth".

But mind you: Even with Afterburner + D3D Overrider, I can't get every engine to produce smooth framerates. Like mentioned before, Splinter Cell consistently produces frametime judder even when I just stand in one spot, stare at a wall and the framerate is consisten 60FPS. The game is mostly smooth though, you wouldn't notice, but there are hiccups here and there and I do think that is related to the frametimes.

That's why I said 'first try one, then another one'. They are "different". I don't like to force 60 fps framelimit in a general default profile (neither inspector or RTSS).

About double buffering, that's the benefit of being a lifetime SLI user. AFR works in triplebuffering mode by default because the backbuffer of each gpu. I don't think about DB or TB.

I have around 520 installed games and I have smooth framerates in 99.6% of them. I can't remember the exceptions. I just bought MXGP this morning because I read about inconsistent framerate problems in steam forums so I have a new goal this afternoon.

What Splinter Cell game has problems in your end?

Look closely at the screenshot. That's what I did. :) It's 60 and D3D Overrider both times, the only difference is with and without framelimit by Afterburner.

Are you sure bSmoothFramerate was set 'True'?
 
One question that I'll throw in here since it's related is that I have my nvidia drivers set to V-Sync "on" and Triple Buffering "on", just as my global profile. Is that a similar implementation to the overrider program?

Yeah I was thinking the same thing. Is there a benefit to using D3DOverrider instead of just forcing Triple Buffering and Vsyn via the NVidia control panel?
 
What if there is an option missing for Raw Input? I noticed in Borderlands: The Pre-Sequel that it stutters on my 60 hz monitor although I have constant 60 fps.
 
This isn't really anything new or a shocking revelation, PC games have had some framepacing issues for donkeys years and there have been multiple ways to sort it out each with varying degree's of success on a game by game basis but there is no one single catch all soltuion. Whether you're using the games built in frame rate limiters, through GPU drivers, 3rd party applications like RTSS and Dxotry they all have different quirks with different games. Same with Vsync (and I agree with Maldo here I next to never use what is offered in game) where D3DOverider is great and all that it has a fair few compatibility problems with modern stuff and doesn't work with 64bit processes. Radeon Pro does allow triple buffering in 64bit applications but I'm not a fan. Nvidia's adaptive Vsync is something I prefer if D3DOverrider isn't working.

Also really using something that monitors your game constantly whilst you're playing with the goal of trying to achieve smooth frame delivery is a bit bonkers as they are constantly snooping in the driver layer to see what's going on when reporting back framerate and frametimes sometimes themselves adding latency. Really after getting things set up turn off Afterburner, Precision, FRAPS etc even just the monitoring side of the application if you need them for overclocking. You can run RTSS (the actual application limiting the framerate) separately from Afterburner and no hiding the OSD is not stopping the application from monitoring your system.

End of the day you need to find out what works best for you and more importantly what works best for the game itself. But having a nice big box of tools to do the job when one doesn't work is a great plus of PC's.

Man gaming on PC is way too complicated at times.
 
Yeah I was thinking the same thing. Is there a benefit to using D3DOverrider instead of just forcing Triple Buffering and Vsyn via the NVidia control panel?

Yes. Only D3DOverrider works with DirectX Games, Nvidia is only Open3D as far as I know. TB in the Nvidia Panel basically never worked for me.
 
Will this fix the stutter you get from limiting a game to 30 FPS? I notice that when I limit a game to 30 FPS on PC it stutters a lot more than a game limited to 30 FPS on console, even if it's 30 FPS locked.

To get consistent frame times at 30 fps you need to use half-refresh Vsync (assuming you're on a 60Hz monitor) in Nvidia Inspector along with Afterburner's frame cap at 30.

Two things though - I didn't find the Framelimit on driver level is as effective as in MSI afterburner. Also, it's a bit more time consuming to configure. Afterburner is just always there, for every game. The second thing, Nvidia Vsync on driver level is still just Double Buffering. Often the Triple Buffer by D3D Overrider makes the difference between "ok" and "super smooth".

Keep in mind D3D Overrider's triple buffering implementation is just the render ahead version. Both double-buffered and triple-buffered (render ahead) can achieve perfect motion assuming you consistently stay at or above your refresh rate. The advantage to having a third buffer in this case is that the GPU won't stall, therefore your average frame rate might be a little higher. The downside however is that this will increase input latency, especially if you start to meet or exceed your refresh rate.

If you want to try what is often called the correct form of triple-buffering you have to run in borderless windowed mode. Turn any form of Vsync off, and make sure Windows Aero is turned on. I know this works for Windows 7, but I'm not sure about Windows 8. What you get is Vsync that functions similarly to Vsync off, but without screen tearing and minimal input latency. The only downside is that because the individual frames aren't being produced in divisible intervals (for example 33.3ms, 16.7ms, etc. on a 60Hz display) you will get motion judder.

One question that I'll throw in here since it's related is that I have my nvidia drivers set to V-Sync "on" and Triple Buffering "on", just as my global profile. Is that a similar implementation to the overrider program?

No, the triple buffering option in Nvidia drivers is for OpenGL.
 
I find to get rid of stuttering I use Global Settings in Nvidia VSYNC set to adaptive, and turn vync off in the game. That works for most of the games I play, using tripple buffer helped in a couple games like batman, and Mafia 2.

Just my 2 cent's, I find the stuttering is usually Vsync issue most of the time.
 
People still use vsync a ton? I can't imagine it in any shooters/action games where using vsync often adds a ton of mouse lag and makes the playing the game extremely difficult.
 
I just reread this after waking up fully. So question, just so I know I'm getting this, to take advantage of this I have to cap my games to 60?
 
It doesn't come with Afterburner, but if you download Rivatuner separately it comes with that. You might be able to find a separate download somewhere.

Ugh, I think I have both afterburner and rivatuner, but I think they came together..not quite sure, weird how it's all set up, seems a little messy offhand. I will have to check it out.
 
Ugh, I think I have both afterburner and rivatuner, but I think they came together..not quite sure, weird how it's all set up, seems a little messy offhand. I will have to check it out.

Yup, Afterburner comes with RivaTuner Statistics Server. To get D3D Overrider you have to download the base Rivatuner separately.
 
i use Nvidia cards, and what i do is just enable Vsync in the Nvidia control panel and then just tweak graphic options in game to get desired performance.

that's it. easy as pie.
 
Limiting the framerate with a third party software or in-game console command is useful in some situations, but none of these are guaranteed to work in all games. There's always some restrictions like 32/64 bit or OpenGL/DX or other overlays or injectors causing trouble. Borderless windowed mode usually helps too with tearing, but usually disables multi-GPU too.
 
Top Bottom