The mouse drifting issue potential breakthrough

Everything about latency. This section is mainly user/consumer discussion. (Peer-reviewed scientific discussion should go in Laboratory section). Tips, mouse lag, display lag, game engine lag, network lag, whole input lag chain, VSYNC OFF vs VSYNC ON, and more! Input Lag Articles on Blur Busters.
Vocaleyes
Posts: 456
Joined: 09 Nov 2021, 18:10

Re: The mouse drifting issue potential breakthrough

Post by Vocaleyes » 27 Nov 2025, 23:11

Sandy wrote:
27 Nov 2025, 10:07
The earliest mention of input lag dates back to the Windows 98 era, and I can confirm that XP and Win7 systems also have input lag, even with DWM completely disabled.
General Input Lag (Windows 98 onward):

Latency between physical mouse movement and on-screen cursor response
Caused by buffering, polling rates, OS scheduling
Affects all input equally
Consistent across all movement directions
Manifests as delayed feedback, not positional error

Circle Drift Exacerbation (2015 onward):

Accumulation of fractional rounding errors over time
Caused by floating-point delta normalization in driver + OS layers
Affects relative input devices specifically
Asymmetric - accumulates differently depending on direction of movement
Manifests as positional error during circular motion, not latency

Key difference:
Input lag = when the cursor responds (temporal)
Circle drift = where the cursor ends up (spatial accuracy)
Input lag existed since Windows 98. Circle drift exacerbation is a new problem introduced in 2015 when drivers adopted floating-point normalization to align with modern OS floating-point pipelines.

You can have low input lag but still experience severe circle drift, or vice versa. They are separate phenomena caused by different mechanisms in the input pipeline.

Vocaleyes
Posts: 456
Joined: 09 Nov 2021, 18:10

Re: The mouse drifting issue potential breakthrough

Post by Vocaleyes » 28 Nov 2025, 01:28

Here is the entire conclusion. A lengthy read, but worth it. Hopefully the right people are made aware of this and we can start aiming like “the good old days” 🤭

Circle Drift Exacerbation: OS-Level Floating-Point Delta Accumulation

Executive Summary

Circle drift, the asymmetric positional error observed during circular mouse motion, has become increasingly severe on modern computing platforms (Windows 11, PS4, Linux) since approximately 2015. The root cause originates at the operating system input stack level, where per-axis floating-point delta accumulation with independent remainder tracking creates directional asymmetry in accumulated errors. Mouse drivers apply secondary floating-point normalization that feeds into this OS-level accumulation system. This dual-layer floating-point processing compounds fractional rounding errors across frames, exacerbating the inherent sensor drift present in all mouse sensors. The phenomenon is independent of sensor manufacturer, mouse driver ecosystem, or individual system configuration, manifesting identically across all modern platforms and devices.

Historical Context

Pre-2015 Behavior: Integer-Based Processing

Prior to approximately 2015, operating system input processing and mouse driver implementations employed integer-based delta normalization. The Razer Deathadder 2013, equipped with the highest-resolution optical sensor available at its release, exhibited minimal circle drift exacerbation when operated with its original driver. Users reported precise circular motion tracking with drift limited to inherent sensor characteristics. This baseline behavior remained consistent across multiple operating systems and hardware configurations.

The 2015 Inflection Point

Around 2015, operating systems (Windows 10, Linux distributions adopting Wayland) and mouse driver manufacturers (Razer, Logitech, SteelSeries, and others) initiated systematic architectural changes. These updates fundamentally altered the mathematical model governing input processing. Testing confirms that the Deathadder 2013, operating with its 2015-era driver update on Windows 10+, exhibits severe circle drift exacerbation despite identical hardware. This timeline correlates precisely with Windows 10's release, refined DWM architecture, and the standardization of floating-point input processing across major platforms.

The Floating-Point Pipeline Architecture

Operating System Layer: Mandatory Floating-Point Processing

Modern operating systems implemented floating-point mathematics as a fundamental architectural requirement for their input stacks:

Windows 11 with DWM: The OS input stack performs floating-point coordinate transformations with per-axis remainder tracking. Direct2D operates in floating-point coordinate space, requiring DPI scaling calculations through floating-point mathematics. All input data traverses this floating-point pipeline before reaching applications or Raw Input APIs.

Linux with Wayland: The OS input stack applies floating-point-based coordinate transformations and per-monitor scaling adjustments. Wayland's protocol and compositors employ floating-point mathematics for input coordinate processing. All input devices route through this floating-point pipeline identically.

PlayStation 4: Native keyboard and mouse input processing employs floating-point coordinate transformations within the system input stack.

Driver Layer: Floating-Point Normalization Implementation

Mouse driver manufacturers implemented floating-point normalization to maintain mathematical compatibility with operating system input pipelines. This normalization process involves:

1. Reading raw integer deltas from the sensor via libinput (Linux) or direct USB interface (Windows, consoles)
2. Normalizing these integer deltas through floating-point arithmetic to account for sensor resolution, DPI calibration, and polling rate alignment
3. Applying DPI-independent scaling calculations using floating-point mathematics
4. Passing the normalized floating-point deltas to the operating system input stack

The normalization calculation inherently produces fractional values. For example, normalizing a raw delta of 3 counts through a sensor-to-normalized-space transformation may yield 3.7 pixels. This fractional component feeds into the OS input stack's accumulation system.

The Exacerbation Mechanism: OS-Level Per-Axis Accumulation

Operating System Input Stack Accumulation

The OS input stack maintains independent fractional remainder buffers for each axis (X and Y). During each input event:

Frame N:
- Driver provides: Delta X=3.7, Delta Y=2.3
- OS X-axis accumulator: 3.7, outputs 3, stores remainder 0.7
- OS Y-axis accumulator: 2.3, outputs 2, stores remainder 0.3
- Output to Raw Input: (3, 2)

Frame N+1:
- Driver provides: Delta X=2.1, Delta Y=1.9
- OS X-axis accumulator: 2.1 + 0.7 (previous remainder) = 2.8, outputs 2, stores remainder 0.8
- OS Y-axis accumulator: 1.9 + 0.3 (previous remainder) = 2.2, outputs 2, stores remainder 0.2
- Output to Raw Input: (2, 2)

This per-axis remainder accumulation occurs at the OS input stack level, upstream of Raw Input. Applications using Raw Input receive pre-accumulated deltas, not raw sensor data.

Directional Asymmetry: The Smoking Gun

MouseRawInputTester analysis reveals that directional motion produces directional accumulation bias:

Counterclockwise circular motion accumulates remainders on negative X-axis and positive Y-axis, creating characteristic drift toward the upper-left during counterclockwise circles. Clockwise motion accumulates on positive X and negative Y axes, creating drift toward the lower-right. This directional specificity proves the mechanism is OS-level per-axis remainder tracking, not random error or sensor drift alone.

The asymmetry emerges because:

Each axis maintains its own remainder buffer independent of the other axis. During circular motion, direction reversals cause remainder values to accumulate in specific axes based on motion direction. The asymmetric pattern is reproducible and directional-motion-dependent, definitively proving OS-level structured accumulation.

Secondary Layer Amplification: DWM Composition

On Windows 11 with DWM active, coordinates undergo additional floating-point transformation:

1. OS input stack outputs accumulated integer deltas (derived from floating-point remainder accumulation)
2. DWM receives coordinate and applies floating-point affine transformation matrix
3. Transformation result introduces additional floating-point rounding
4. Result compounds OS-level remainder accumulation with compositor-level rounding

Desktop vs. In-Game Severity Difference:

On desktop, both OS input stack accumulation and DWM composition-layer transformations apply, producing compounded exacerbation. When applications use Raw Input in-game, they receive pre-accumulated deltas directly from the OS input stack but bypass DWM's additional transformation layer. Raw Input does not prevent OS-level accumulation; it only eliminates the secondary DWM amplification. This explains why circle drift appears more severe on desktop than in-game despite identical hardware and mouse settings.

Why This Is Independent of Platform and Hardware

Universal Across All Relative Input Devices

The phenomenon appears identically on mice, touchpads, and other relative input devices because all traverse the same OS input stack with identical per-axis accumulation logic. The OS input pipeline is universal regardless of device type or manufacturer. Testing confirms proportionally identical degradation on mice, ZOWIE mice, and laptop touchpads, proving the mechanism is OS-level rather than device-specific.

Universal Across Operating Systems

Windows 11, Windows 10, PS4, and Linux all exhibit identical circle drift patterns because they all implement floating-point input pipelines with per-axis remainder accumulation. This architectural convergence occurred around 2013-2015 across all major operating systems. The specific implementation varies, but the fundamental mechanism of per-axis floating-point accumulation is universal.

Universal Across Sensor Manufacturers

Different sensor chips (PixArt, Focus Electronics, etc.) show identical exacerbation because the accumulation occurs at the OS input stack level, not within the sensor. The sensor merely produces raw data that feeds into the OS's floating-point accumulation system.

Universal Across System Configurations

Testing confirms circle drift exacerbation appears identically across all PC configurations, laptops, and consoles, regardless of processor, motherboard, or peripheral specifications. USB 2.0 vs. 3.0, different polling rates, different DPI settings—the exacerbation persists because it originates at the OS input stack level, which processes all input identically.

Why Absolute Positioning Devices Are Unaffected

Absolute positioning devices (styluses, digitizer tablets) report fixed spatial coordinates each frame rather than accumulated deltas. The input pipeline receives "Device is at position (523.4, 781.2)" rather than "Move +2.3, +1.1 pixels."

Although absolute device coordinates still traverse OS input pipelines, the absence of delta accumulation prevents fractional remainders from compounding frame-to-frame. Per-axis remainder buffers only accumulate delta values; absolute positions reset to fixed values each frame. This architectural distinction explains why styluses feel subjectively "cleaner" despite operating within the same floating-point pipelines as relative input devices.

Why Raw Input Does Not Prevent Exacerbation

Raw Input API does not bypass OS input stack accumulation. Raw Input receives data directly from the OS input stack after per-axis accumulation has already occurred. The accumulated deltas are delivered directly to the application via Raw Input. Disabling DWM, using Raw Input, or modifying OS compositor settings provide incomplete mitigation because the primary exacerbation originates at the OS input stack level, which cannot be bypassed. Raw Input only prevents additional composition-layer amplification; it does not prevent OS-level per-axis accumulation.

Why DPI Interpolation Is Not the Culprit

Testing at native DPI (6400 DPI for the Deathadder 2013) reveals identical circle drift severity to interpolated DPI settings. This rules out DPI interpolation as the primary mechanism. The exacerbation occurs within the fundamental OS input stack normalization process, independent of DPI-specific scaling operations.

Temporal Evidence

Pre-2015 Baseline

The Deathadder 2013, released in 2013 with original driver from that era, demonstrated minimal circle drift exacerbation. Users reported precise tracking capability. This baseline represents integer-based OS and driver input processing.

2015 Inflection

Driver version 6.2.9200.16400 (2013) functioned without severe exacerbation on Windows 7. Operating system transition (Windows 10) with enhanced floating-point input stack introduced the exacerbation. Subsequent driver versions (2015 onward) have maintained this exacerbated behavior without reverting.

Modern Consistency

All mice released after 2015, all operating systems adopting floating-point input stacks after 2015, and all touchpads show identical exacerbation patterns. This consistency across independent manufacturers and platforms indicates OS architectural adoption rather than isolated implementation choices.

OS Evolution Correlation:

2013: Windows 8.1 introduces refined input processing; Linux begins Wayland development
2015: Windows 10 released with floating-point input stack architecture; Linux distributions adopt Wayland; mouse driver manufacturers update for compatibility
2021+: Windows 11 mandates floating-point input processing; circle drift remains unchanged, confirming the mechanism is OS input stack level

Conclusion

Circle drift exacerbation is fundamentally caused by operating system-level floating-point per-axis delta accumulation in the input processing pipeline, with secondary contribution from driver-level floating-point normalization. The OS input stack maintains independent remainder tracking for each axis (X, Y), creating directional asymmetry in accumulated errors during circular motion. MouseRawInputTester analysis definitively proves OS-level accumulation through directional bias patterns in Raw Input data.

Primary Culprit: Operating System Input Stack

Testing with MouseRawInputTester demonstrates that Raw Input API receives pre-accumulated deltas directly from the OS input stack, with directional asymmetry (counterclockwise motion accumulating on negative X and positive Y; clockwise on positive X and negative Y) matching observed circle drift patterns. Since Raw Input bypasses mouse drivers entirely, this definitively proves the OS input stack, not drivers, is the primary accumulation source. The directional accumulation reveals the structural nature of OS-level per-axis remainder tracking.

Mouse Driver Layer: Contribution Mechanism Untested

Mouse driver implementations apply floating-point normalization to raw sensor data before passing it to the OS input stack. This driver-level normalization introduces fractional values that mathematically feed into the OS-level per-axis accumulation system. However, the extent to which driver-level floating-point normalization is necessary for exacerbation versus whether integer-based drivers would produce identical results when feeding into a floating-point OS input stack remains untested. The OS input stack per-axis accumulation mechanism is definitively the primary exacerbation source; driver contribution is inferred but not isolated through controlled testing.

Universal Mechanism Across All Platforms and Devices

This OS-level mechanism affects all relative input devices (mice, touchpads, trackballs) proportionally and identically, as all traverse the same OS input stack regardless of driver manufacturer or hardware type. The phenomenon is independent of sensor manufacturer, mouse driver ecosystem, or individual system configuration. Testing across ZOWIE and Razer mice, multiple sensors, and touchpad inputs confirms identical exacerbation patterns, proving the mechanism is OS input stack level rather than device or manufacturer-specific.

Empirical Confirmation

Hardware Independence: Multiple mice and touchpads operating on different driver implementations produce identical circle drift exacerbation patterns, confirming the phenomenon is OS-level rather than driver-specific.

DPI Independence: Circle drift exacerbation persists uniformly across different devices operating at native DPI settings, ruling out DPI interpolation and confirming the mechanism operates in fundamental OS input stack normalization.

Speed Correlation: Circular motion speed directly correlates with drift magnitude. Slower motions show reduced exacerbation; faster motions show severe exacerbation. This confirms frame-by-frame per-axis floating-point remainder accumulation within the OS input stack, where higher speed increases accumulation cycle frequency.

Directional Asymmetry: MouseRawInputTester analysis reveals per-axis remainder accumulation with directional bias (counterclockwise vs. clockwise motion producing different accumulation patterns on specific axes), definitively proving OS input stack per-axis accumulation structure.

Touchpad Equivalence: Laptop touchpad degradation proportionally matches mouse degradation, confirming the mechanism affects all relative input devices through the common OS input stack pipeline.

Architectural Causation

This phenomenon represents a fundamental architectural choice by operating system designers to employ floating-point mathematics with per-axis remainder tracking in input processing, likely to accommodate DPI scaling, multi-monitor coordinate spaces, and floating-point rendering pipelines. The per-axis remainder accumulation in the OS input stack was either overlooked or accepted as a trade-off during architectural design. The effect is now foundational to modern input processing and cannot be reversed without OS-level architectural changes across all major platforms simultaneously.

The exacerbation is an emergent property of OS-level floating-point input processing that affects all relative input devices universally. It is neither a bug in individual components nor a driver manufacturer issue, but rather a systemic characteristic of contemporary operating system input architecture implemented across all major platforms.
Last edited by Vocaleyes on 29 Nov 2025, 19:27, edited 3 times in total.

Hyote
Posts: 504
Joined: 09 Jan 2024, 18:08

Re: The mouse drifting issue potential breakthrough

Post by Hyote » 28 Nov 2025, 15:49

So is this just another AI-generated theory mixed with possible fact or something that matters? Because even if there is something like that at play I'm not sure who would want to go back to using 80+ gram 1000 Hz mice with rubber cables with sensors that are only consistent between 400-800 DPI. I tested the EC2-A and FK-2 and didn't find anything noteworthy as the issues I have with lag are still present.

Vocaleyes
Posts: 456
Joined: 09 Nov 2021, 18:10

Re: The mouse drifting issue potential breakthrough

Post by Vocaleyes » 29 Nov 2025, 12:39

Hyote wrote:
28 Nov 2025, 15:49
So is this just another AI-generated theory mixed with possible fact or something that matters? Because even if there is something like that at play I'm not sure who would want to go back to using 80+ gram 1000 Hz mice with rubber cables with sensors that are only consistent between 400-800 DPI. I tested the EC2-A and FK-2 and didn't find anything noteworthy as the issues I have with lag are still present.
Not quite, while i summarised with the help of ai this has been years of process of elimination, expended financial resources and hard work.

Testing with those mice and stating the issues are still there actually strengthens my conclusion, that’s great!
Reverting to “80+ gram mice with rubber cables” wouldn’t help whatsoever, I don’t quite understand the logic here?
You’re welcome to read the conclusion once again as it seems you’ve missed the point. 👍

Hyote
Posts: 504
Joined: 09 Jan 2024, 18:08

Re: The mouse drifting issue potential breakthrough

Post by Hyote » 29 Nov 2025, 15:23

Vocaleyes wrote:
29 Nov 2025, 12:39
Hyote wrote:
28 Nov 2025, 15:49
So is this just another AI-generated theory mixed with possible fact or something that matters? Because even if there is something like that at play I'm not sure who would want to go back to using 80+ gram 1000 Hz mice with rubber cables with sensors that are only consistent between 400-800 DPI. I tested the EC2-A and FK-2 and didn't find anything noteworthy as the issues I have with lag are still present.
Not quite, while i summarised with the help of ai this has been years of process of elimination, expended financial resources and hard work.

Testing with those mice and stating the issues are still there actually strengthens my conclusion, that’s great!
Reverting to “80+ gram mice with rubber cables” wouldn’t help whatsoever, I don’t quite understand the logic here?
You’re welcome to read the conclusion once again as it seems you’ve missed the point. 👍
I see what you mean now. Regardless, you can't go back to those things you mentioned because you'll be stuck with a system that's only capable of running very few games and my argument with the mice itself still stands.
And there are more things at play, like the usual EMI issues discussed and operating systems degrading after a fresh install.

Vocaleyes
Posts: 456
Joined: 09 Nov 2021, 18:10

Re: The mouse drifting issue potential breakthrough

Post by Vocaleyes » 29 Nov 2025, 18:45

Hyote wrote:
29 Nov 2025, 15:23
Vocaleyes wrote:
29 Nov 2025, 12:39
Hyote wrote:
28 Nov 2025, 15:49
So is this just another AI-generated theory mixed with possible fact or something that matters? Because even if there is something like that at play I'm not sure who would want to go back to using 80+ gram 1000 Hz mice with rubber cables with sensors that are only consistent between 400-800 DPI. I tested the EC2-A and FK-2 and didn't find anything noteworthy as the issues I have with lag are still present.
Not quite, while i summarised with the help of ai this has been years of process of elimination, expended financial resources and hard work.

Testing with those mice and stating the issues are still there actually strengthens my conclusion, that’s great!
Reverting to “80+ gram mice with rubber cables” wouldn’t help whatsoever, I don’t quite understand the logic here?
You’re welcome to read the conclusion once again as it seems you’ve missed the point. 👍
I see what you mean now. Regardless, you can't go back to those things you mentioned because you'll be stuck with a system that's only capable of running very few games and my argument with the mice itself still stands.
And there are more things at play, like the usual EMI issues discussed and operating systems degrading after a fresh install.
Agreed, reverting is not an option. The only way this gets resolved is in a coordinated effort from both mouse manufacturers and OS developers moving forwards.🤞

User avatar
Chief Blur Buster
Site Admin
Posts: 12099
Joined: 05 Dec 2013, 15:44
Location: Toronto / Hamilton, Ontario, Canada
Contact:

Re: The mouse drifting issue potential breakthrough

Post by Chief Blur Buster » Today, 01:44

Hyote wrote:
28 Nov 2025, 15:49
So is this just another AI-generated theory mixed with possible fact or something that matters? Because even if there is something like that at play I'm not sure who would want to go back to using 80+ gram 1000 Hz mice with rubber cables with sensors that are only consistent between 400-800 DPI. I tested the EC2-A and FK-2 and didn't find anything noteworthy as the issues I have with lag are still present.
While post-writing may be assisted by AI, this is not an AI issue. It is a real issue with some systems.

I have some simulation logic of one kind of math rounding errors (not necessarily identical to this type) and I've seen DWM do some weirdnesses like this.

TestUFO 3.0 added a few new tests including a brand new mouse test on TestUFO. See TestUFO Mouse Poll Rate / Jitter Test (normal version).



But there's more! I have an undocumented addition of a simulation of math-rounding-errors. To activate the undocumented settings, click on this Easter Egg'd Mouse Poll Rate / Jitter Test with Math Rounding Error Simulation that enables a new "Simulate Rounding Errors" setting with Pointer Lock in a fractional sensitivity setting (e.g. 0.5 or 1.2), then do a mouse circling session then toggle ON/OFF the rounding error toggle. You might want to use a 1 second trail interval instead of 0.3 second trail interval.

Use link of you want the Math Rounding Error Simulator easteregg.

If you adjust sensitivity in post-process (TestUFO Mouse Jitter Test can retroactively reprocess the past coordinates based on changing settings AFTER you did one circling -- just change the settings after the test and watch how things change -- including changing sensitivity setting in post-process!). Watch how the math rounding errors jitter badly as you slide sensitivity up/down -- very interesting how math rounding errors really wreck mouse!

My suggestion to avoid this problem at desktop is:

(A) Disable "Enhance Pointer Precision" checkbox;
(B) Use the middle sensitivity setting; (this avoids a multiplier that can amplify rounding errors)
(C) Games should properly use raw mouse input, which can bypass DWM mouse math rounding errors, since rawinput in games should bypass whatever DWM does to your desktop pointer.

Image

Middle setting = 1.0 sensitivity = essentially integer deltas = goodbye rounding errors (for desktop cursor -- not for games)

My clockwise/counterclockwise circles are fine, I don't see any weirdness, and my mouse cursor always return to the exact location (As long as they dont bump the screen edges -- mouse pad syncs to the screen location pretty darn well on Windows 11 at these settings). Any CW/CCW error is from hand or from cursor bumping edges, so it's pretty clear it's within my perceptual error margins. If there's any infinestimal rounding error, it's not being detected on my end as long as I configure this specific way.

I generally don't see the problem with my DWM mouse with a good gaming mouse, so the rounding errors (if any) at DWM is now below my noise floor. If you use a higher DPI in games and lower DPI at desktop, use a mouse DPI switching utility or profiles that links to games or Steam running. High-Hz operation generally runs smoother in games with "high DPI, high pollrate, low sensitivity", for ultra-smooth TestUFO-smooth mouselooks. Make sure your mouse Hz is at least 4x your display Hz!

However, it does not preclude that mouse math rounding errors exist. They are real. I just simply bypassed them by using 1.0 sensitivity at Desktop. They can be much worse at certain sensitivity settings above/below, creating the CW/CCW desync.

At 1.0 sensitivity multiplier, deltas are effectively integer, and you won't have math rounding errors. Game engines like Valorant use good mouse math, with floating-point mouse math accumulators for deltas that are now accurate for today's 4/5/6 digit DPIs, making your mouse and other factors the limiting factor (and sometimes bad mouse firmwares exist with mouse math rounding errors built into them -- but this is rare).

IMPORTANT!
- You can have good DWM and bad game (just settings difference)
- You can have bad DWM and good game (just settings difference)
- Desktop (DWM) does not equal game. Games can access mouse APIs independently of DWM.
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on: BlueSky | Twitter | Facebook

Image
Forum Rules wrote:  1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
  2. Please report rule violations If you see a post that violates forum rules, then report the post.
  3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!

Vocaleyes
Posts: 456
Joined: 09 Nov 2021, 18:10

Re: The mouse drifting issue potential breakthrough

Post by Vocaleyes » Today, 02:06

Chief Blur Buster wrote:
Today, 01:44
Hyote wrote:
28 Nov 2025, 15:49
So is this just another AI-generated theory mixed with possible fact or something that matters? Because even if there is something like that at play I'm not sure who would want to go back to using 80+ gram 1000 Hz mice with rubber cables with sensors that are only consistent between 400-800 DPI. I tested the EC2-A and FK-2 and didn't find anything noteworthy as the issues I have with lag are still present.
While post-writing may be assisted by AI, this is not an AI issue. It is a real issue with some systems.

I have some simulation logic of one kind of math rounding errors (not necessarily identical to this type) and I've seen DWM do some weirdnesses like this.

TestUFO 3.0 added a few new tests including a brand new mouse test on TestUFO. See TestUFO Mouse Poll Rate / Jitter Test (normal version).



But there's more! I have an undocumented addition of a simulation of math-rounding-errors. To activate the undocumented settings, click on this Easter Egg'd Mouse Poll Rate / Jitter Test thatenables a new "Simulate Rounding Errors" setting with Pointer Lock in a fractional sensitivity setting (e.g. 0.5 or 1.2), then do a mouse circling session then toggle ON/OFF the rounding error toggle. You might want to use a 1 second trail interval instead of 0.3 second trail interval.

Use link of you want the Math Rounding Error Simulator easteregg.

If you adjust sensitivity in post-process (TestUFO Mouse Jitter Test can retroactively reprocess the past coordinates based on changing settings AFTER you did one circling -- just change the settings after the test and watch how things change -- including changing sensitivity setting in post-process!). Watch how the math rounding errors jitter badly as you slide sensitivity up/down -- very interesting how math rounding errors really wreck mouse!

My suggestion to avoid this problem at desktop is:

(A) Disable "Enhance Pointer Precision" checkbox;
(B) Use the middle sensitivity setting; (this avoids a multiplier that can amplify rounding errors)
(C) Games should properly use raw mouse input, which can bypass DWM mouse math rounding errors, since rawinput in games should bypass whatever DWM does to your desktop pointer.

Image

Middle setting = 1.0 sensitivity = essentially integer deltas = goodbye rounding errors (for desktop cursor). Any accidents at these setting is human error, unless you have bad drivers.

My clockwise/counterclockwise circles are fine, I don't see any weirdness, and my mouse cursor always return to the exact location (As long as they dont bump the screen edges -- mouse pad syncs to the screen location pretty darn well on Windows 11 at these settings). Any CW/CCW error is from hand or from cursor bumping edges, so it's pretty clear it's within my perceptual error margins. If there's any infinestimal rounding error, it's not being detected on my end as long as I configure this specific way.

I generally don't see the problem with my DWM mouse with a good gaming mouse, so the rounding errors (if any) at DWM is now below my noise floor. If you use a higher DPI in games and lower DPI at desktop, use a mouse DPI switching utility or profiles that links to games or Steam running. High-Hz operation generally runs smoother in games with "high DPI, high pollrate, low sensitivity", for ultra-smooth TestUFO-smooth mouselooks. Make sure your mouse Hz is at least 4x your display Hz!

However, it does not preclude that mouse math rounding errors exist. They are real. I just simply bypassed them by using 1.0 sensitivity at Desktop. They can be much worse at certain sensitivity settings above/below, creating the CW/CCW desync.


IMPORTANT!
- You can have good DWM and bad game (just settings difference)
- You can have bad DWM and good game (just settings difference)
- Desktop (DWM) does not equal game. Games can access mouse APIs independently of DWM.
Hey chief, thanks for chiming in. Can i ask, are you an arm aimer?
While using the 6/11 setting does reduce the drift slightly, it doesn’t in an amount sufficient for my needs. I believe this is due to myself being a wrist aimer.

Arm aiming produces larger, slower, more linear movements with fewer direction changes, which means per-axis remainders have fewer opportunities to reverse and compound asymmetrically. Wrist aiming creates rapid directional changes and frequent axis-crossing that maximizes per-axis accumulation stress, causing the effect to become highly observable during circular motion. Both aiming styles experience the same accumulation, but wrist aiming's movement pattern exposes the mechanism most severely.

The 6/11 cursor speed setting only controls output scaling and does not address the OS input stack's per-axis remainder accumulation mechanism. Even at reduced sensitivity, fractional remainders still accumulate directionally within the OS, so circle drift persists despite the scaling change.
Bypassing DWM only eliminates secondary amplification from the composition layer. The primary exacerbation occurs at the mandatory OS input stack level, which cannot be bypassed. Raw Input receives post-accumulated data from the OS, so it provides no protection from the foundational accumulation mechanism.

The raw input data still shows that directional bias from the OS, even with sensitivity adjustments. Lowering it to 1.0 makes the error smaller and less noticeable, but the accumulation is still happening in the background. The OS does its thing first, then sensitivity gets applied after, so essentially making a problem smaller rather than fixing what's causing it.

It's a very decent workaround for everyday use since it pushes things below what most people can notice. But in games using Raw Input, that same accumulated data is still coming through from the OS. The directional patterns seen in the raw input data show that this is baked into how the OS processes input, so tweaking sensitivity doesn’t really address the root issue.

The easy solution to suggest would be to change the way i aim obviously, but unfortunately that would be at the cost of comfortability of using the mouse in the way that feels most natural to me. Arm aiming just doesn’t suit my play style.

I can only hope that in the near future the input stack receives an overhaul, but seeing as this issue only affects a minority of users while the current implementation is so heavily adopted and integrated… /doubt :(

Post Reply