Why standard Sleep(1) causes overlay stuttering:
Standard Windows Sleep() has a default timer resolution of 15.6ms, causing erratic 45-80 FPS spikes on 144Hz monitors.
Hybrid Precision Frame Limiter:
void SyncFrameRate(int targetFps) {
static LARGE_INTEGER freq, lastTime;
if (freq.QuadPart == 0) { QueryPerformanceFrequency(&freq); QueryPerformanceCounter(&lastTime); }
double targetInterval = 1.0 / targetFps;
LARGE_INTEGER curTime;
QueryPerformanceCounter(&curTime);
double elapsed = (double)(curTime.QuadPart - lastTime.QuadPart) / freq.QuadPart;
// Coarse sleep if plenty of time remains, then spin-wait last 0.5ms
while (elapsed < targetInterval) {
if (targetInterval - elapsed > 0.002) Sleep(1);
else _mm_pause(); // Low-latency CPU pause
QueryPerformanceCounter(&curTime);
elapsed = (double)(curTime.QuadPart - lastTime.QuadPart) / freq.QuadPart;
}
lastTime = curTime;
}