🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Limit refresh rate

Started by
1 comment, last by MJP 2 years, 1 month ago

Hi,

I am looking for the best way to limit the refresh rate of my (DX11 windowed) application while keeping movements as smooth as possible. Whats wrong with VSync? With high freq monitors like 144Hz and more the GPU usage (Heat, fans, battery, etc..) can go crazy very quickly. Of course you could just permanently configure a lower frequency in the windows settings but yea.. people still would like to have nice and smooth UI and web browsing.

Ok, so in terms of “smoothness” the reference is to just set the Monitor settings on 60Hz in Windows. That looks fine with VSync without any stutter.

I tried several things to achieve the same thing in my app:

1. SwapChain Present Interval
The SyncInterval parameter sais “1 through 4 - Synchronize presentation after the nth vertical blank.”. So for my understanding.. if I set this to 2 it should block my thread to math ½ of the monitor refreshrate, but it does not.
- 2 results in about 110-125fps and stutter
- 4 results in about 60-65fps and more stutter
so it looks like there's nothing really synchronized to the screen.

2. Trails with an own measureing and thread blocking
I just measured using QueryPerf timers and tried and blocked the thread for the “rest” of the time to match a defined framerate. Thats working but yea.. its properly not synchronized with the screen and ends up into micro stutter.. but better than the first approach.

My Monitor also has G-Sync.. I don't know how this affects my trails.. or how to deal with G-Sync in general with DirectX.

Any Ideas?

Thanks


Advertisement

Are you using the newer FLIP model swap chain? It has different behavior than the old blt models, which were effectively triple-buffered in windowed mode. Windowed G-Sync can definitely throw things off too, do you have that enabled?

This topic is closed to new replies.

Advertisement