Testing Micro-Adjusting the Timer Resolution for Higher Precision
The topic of timer resolutions is quite popular in the PC gaming scene since this is one quick change that can improve the way your game and inputs feel. Upon further investigation, however, it becomes clear that the topic of system clocks and ticks is quite complex and has quite a few options you need to explore.
Amit is quite well known in the PC tuning scene and as he describes it, he found another unique interaction of the timer resolution by pure coincidence.
Amit’s Findings
Amit goes on to describe how he accidentally used a random value for the maximum supported timer resolution (0.5ms) and stumbled upon an interesting find. What he noticed then is that he could increase the precision of the timer by using a higher resolution than the standard 0.500ms getting a closer value to 1ms when it comes to sleep delays.
I was curious about the results since he did mention that this change did help most of the people included in his testing and although quite late to the party, I wanted to see for myself if I can improve the precision of the timer by using a different value than the standard 0.5ms.
Testing
To conduct the test I downloaded the MeasureSleep utility from Amit’s GitHub and proceeded to tweak the value of my timer resolution. On my system, I am using a TSC clock with a TSC tick, and for the timer utility, I am using Memory Cleaner.
In my testing, I checked the initial 0.5ms values then tested Amit’s 0.507ms, and then kept going lower until I found spikes in ms and variances in the delta. This way I have confirmed that an adjusted value does provide higher precision compared to the default 0.5ms and have adjusted the value to what I have found to be the best for my settings and setup (PC hardware, Windows installation, settings, etc).
The value that worked for me might be different for your build therefore I suggest going through the same steps of testing the default 1ms, 0.5ms, and the tweaked 0.507 from Amit. Once you have noted the values for those 3, you can start making your adjustments to the timer resolution until you hit a stable value that is the closest to 1ms and has no random spikes or variances.
I tested the new timer resolution value while idling, while gaming, and while benchmarking with a high load just to make sure that the value is stable no matter what.
Once I confirmed that everything is working as intended under different loads I kept the value with the highest precision for my system.
TL;DR
As Amit noted, using a tuned value for your timer resolution utility improves precision so instead of using a default value of 0.5ms you should test different possible values and stick to the one that is the closest to 1ms.
This is a very unique post, as I’m on windows 10 22h2 and I saw that i get Sleep and delta to match 15ms, while the timer resolution keeps under 1ms being forced by steam, so I guess windows 10 versions above 1809 are the problem?
btw what windows OS where you using on this test?
Right now i’m moving to windows 111 22h2 just to see if I get better delta/sleep
Your timer res is influenced by your BCD commands meaning that you can use newer Windows versions and still achieve 1ms sleep timer with very low deltas. I have tested micro-adjusting the timer resoution after BCD commands on 1709/1803/1809 and even Win 11(22h2) (different setups) and you can get them all to 1ms stable. I can get the said 1ms sleep timer on both TSC+TSC and TSC+RTC – you can look at this article (https://www.xbitlabs.com/hpet-settings/) if you are confused about clocks and timers for your Win install.
Hi Chris, I have the same problem as Jack. I have an AMD system, did you test also on AMD systems or only Intel? Might this problem be an effect of AMD?
Hello, I have tested the micro-adjusted timer res on 2 AMD systems 5600X and 5800X3D and I had friends on other systems including Intel test it for themselves. This is just a matter of the ISO being used – old Win 10 and new Win 11 work fine while certain newer builds of Win 10 do not (https://github.com/amitxv/PC-Tuning/blob/main/docs/research.md#fixing-timing-precision-in-windows-after-the-great-rule-change).
My guess is that you have AMD. Right?
“Thanks to a comment on the Great Rule Change article, on Windows Server 2022+ and Windows 11+, the registry key below can also be used so that requesting a higher resolution is effective on a system-wide level rather than only the calling process.
Hey man I have been playing withel these for 4 years now and have found amazing results and I do competetive gaming. I just need some professional guidance to optimize it to the best.i do have dual boot win 10 and 11.. but now 11 feels better its the latest.. can you help me I will be more the happy to compensate for your time 🙂 it will mean the world..
BTW I also sent you a friend request on discord few says ago it ShantKArmenian#5215
I tried windows 11 22h2 but at this point I surrender, even changing in BIOS hpet either Enable or Disabled, and doing the bcdedit settings, I still getting delta and sleept 15 ms :/