wl_fixed is not precise enough for high dpi mice
@derek
Submitted by Derek Foreman Assigned to Wayland bug list
Description
(Related to bug 85632)
I have a mouse here (a Razer Abyssus) with a 3500DPI sensor.
There is discussion about having libinput normalize mouse input to a 400dpi standard - some patches have landed in libinput, but there isn't yet a way to change from the default 400dpi setting.
Once that works, this 3500 dpi mouse will have its deltas multiplied by 400/3500 before being fed to the pointer acceleration filter. On the other end of the accel filter this slow motion becomes even slower, and the deltas end up below the threshold for wl_fixed. It's entirely possible to slowly move your mouse along indefinitely without any motion occurring.
I have confirmed that this is not just really slow motion (that will eventually accumulate to on screen movement) - motion is being rounded to zero during the wl_fixed_to_double() conversion in weston's libinput-device.c
To reproduce: Get a ridiculous mouse. The more blue LEDs the better. (3000+ DPI can show the problem easily, 2000 will do in a pinch)
Use libinput master branch and change device->dpi = DEFAULT_MOUSE_DPI; in src/evdev.c to whatever is appropriate