Home / Latency and Timers

⏱️ Latency and Timers

Interrupts, DPC, Timer Resolution and WM messages

🎯 Interrupts and DPC

Configure interrupt and DPC (Deferred Procedure Call) priorities to reduce latency:

Interrupt Priority powershell
$path = "HKLM:\SYSTEM\CurrentControlSet\Control\KernelVelocity"
New-Item -Path $path -Force | Out-Null
New-ItemProperty -Path $path -Name "DisableDynamicTick" -PropertyType DWord -Value 1 -Force
DPC Watchdog powershell
$path = "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\kernel"
New-ItemProperty -Path $path -Name "DpcWatchdogProfileOffset" -PropertyType DWord -Value 10000 -Force

⏲️ Timer Resolution

Windows uses a 15.625ms timer resolution by default. For gaming, reducing it improves response times:

Default: 15.625 ms (64 Hz)
Gaming: 1 ms (1000 Hz)
Aggressive: 0.5 ms (2000 Hz)
Set 0.5ms resolution powershell
bcdedit /set disabledynamictick yes
bcdedit /set useplatformclock true
💡

💡 Timer Tools

Use TimerResolution by Lucas Hale or HPET to manually adjust timer resolution in real-time without rebooting.

🔄 High Precision Event Timer (HPET)

HPET can cause additional latency. Disabling it improves gaming performance:

Disable HPET powershell
bcdedit /deletevalue useplatformclock
Disable HPET in Device Manager (alternative) powershell
Get-PnpDevice | Where-Object {$_.FriendlyName -like "*High Precision Event Timer*"} | Disable-PnpDevice -Confirm:$false
⚠️

⚠️ Compatibility

On very old systems or notebooks, HPET may be necessary. Test if your system is stable without it before applying permanently.

📨 Reduce WM Messages

Reducing Windows message queue time improves responsiveness:

Win32PrioritySeparation powershell
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\PriorityControl" -Name "Win32PrioritySeparation" -PropertyType DWord -Value 38 -Force

Recommended Values:

26 (0x1A): Balanced
38 (0x26): Gaming (foreground priority)
40 (0x28): Maximum foreground priority

🚀 IRQ and Affinity

Adjust IRQ priority for network card and GPU:

Configure high IRQ priority powershell
$path = "HKLM:\SYSTEM\CurrentControlSet\Control\PriorityControl"
New-ItemProperty -Path $path -Name "IRQ8Priority" -PropertyType DWord -Value 1 -Force
New-ItemProperty -Path $path -Name "IRQ16Priority" -PropertyType DWord -Value 2 -Force
💡

💡 MSI Mode

To reduce latency even further, enable MSI (Message Signaled Interrupts) on PCI-E devices using MSI Utility or by editing registry.

⚠️

⚠️ Restart Required

All these changes require a full system restart to apply correctly.