Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • W weston
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 341
    • Issues 341
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 132
    • Merge requests 132
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • waylandwayland
  • weston
  • Issues
  • #60
Closed
Open
Issue created Oct 31, 2014 by Bugzilla Migration User@bugzilla-migration

wl_fixed is not precise enough for high dpi mice

Submitted by Derek Foreman @derek

Assigned to Wayland bug list

Link to original bug (#85715)

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

Blocking

  • Bug 84014
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking