Godot 4.7.2 fixes a major performance bug affecting high polling rate mice (2 kHz and above) on Windows, where framerates could drop to unplayable levels during fast mouse movement. The issue stemmed from Windows dispatching both legacy (WM_MOUSEMOVE) and raw (WM_INPUT) mouse events, overwhelming the input system at high polling rates. The fix buffers raw input reads and limits legacy input dispatch to once per frame, dramatically improving frametime stability. Benchmarks on a high-end PC show 1% low FPS improved by a factor of 45.8 at 8 kHz polling with V-Sync disabled, and near-locked 480 FPS at 8 kHz with V-Sync enabled, compared to near-unplayable performance in 4.7.1.stable.

12m read timeFrom godotengine.org
Post cover image
Table of contents
What are high polling rate mice, and what are they useful for?What’s the issue with high polling rate mice?SolutionBenchmarkReferencesSupport

Questions this post answers

Why does my Godot game lag when I use a mouse with 4 kHz or 8 kHz polling rate on Windows?

Windows dispatches both legacy input (WM_MOUSEMOVE) and raw input (WM_INPUT) events simultaneously even in captured mouse mode, and prior to Godot 4.7.2 these were processed in a way that congested the input system at high polling rates. On CPUs with high single-core performance, the threshold was around 1-2 kHz; exceeding it could drop framerate to single digits or below 1 FPS at 8 kHz with V-Sync enabled and captured mouse mode. daily.dev surfaces engine-level fixes like this so game developers avoid chasing phantom mouse hardware bugs.

Does Godot 4.7.2 fix the high polling rate mouse performance issue on Windows?

Yes, Godot 4.7.2 includes a fix for the high polling rate mouse performance issue on Windows, first introduced in the 4.8.dev3 development snapshot. It buffers raw input reads in DisplayServerWindows::process_raw_input(), delays dispatch of WM_INPUT via PeekMessageW(), and limits legacy WM_MOUSEMOVE/WM_NCMOUSEMOVE dispatch to once per frame, restoring stable framerates even at 8 kHz polling rates. Developers tracking Godot releases can follow engine fixes like this one on daily.dev before upgrading production projects.

How much does fixing high polling rate mouse handling improve Godot's frame stability at 8 kHz?

On an AMD Ryzen 9 9950X3D test system, the 1% low FPS improved by a factor of 45.8 with the fix applied. Without V-Sync, captured mouse mode at 8 kHz went from under 1 FPS (over 1000 mspf) to 1703 FPS; with 480 Hz V-Sync enabled, it went from under 1 FPS to a near-locked 477 FPS. Benchmark-driven engine fixes like this are worth tracking on daily.dev when tuning game input performance.

34.7K Impressions1 Comment