Bug 83114 - Touchpad acceleration changes with screen size
Summary: Touchpad acceleration changes with screen size
Status: RESOLVED DUPLICATE of bug 31636
Alias: None
Product: xorg
Classification: Unclassified
Component: Input/synaptics (show other bugs)
Version: git
Hardware: Other All
: medium normal
Assignee: Peter Hutterer
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-08-26 22:00 UTC by Peter Hutterer
Modified: 2017-03-13 00:32 UTC (History)
4 users (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Peter Hutterer 2014-08-26 22:00:24 UTC
The touchpad is an absolute device in relative mode. Being an absolute device, the relative coordinates get converted into absolute coordinates in the server and the whole mess of coordinate scaling, documented in dix/getevents.c, makes it dependent on the screen resolution.

Most recent attempt was reverted again in commit 9a19bf06b5b409fa0d5b5932e29cd4c5545052c5, from the commit message:
    
Reverting for two reasons:
* the scaling does not work on devices that don't advertise resolution, and
  the default resolution used (100 units/mm) is higher than most devices,
  resulting in a significant slowdown of the touchpads.
* the scaling is still affected by resolution changing. The patch worked
  before acceleration but since it maps into resolution-dependent dx/dy
  coordinates the acceleration may distort the movement after the fact. So the
  same input data generates different movements depending on the resolution.
  This can't easily be fixed for all affected devices as synaptics has its own
  velocity calculation method whereas wacom doesn't. So anything in the server
  won't work for both at the same time.

The real solution will have to be something that reverts some of the synaptics-specific acceleration code.

Some downstream bugs:
https://bugzilla.gnome.org/show_bug.cgi?id=707616
https://bugzilla.redhat.com/show_bug.cgi?id=1104789
Comment 1 Peter Hutterer 2015-08-12 06:10:44 UTC
0a4cf80a00663ff3ce8e76baf0940782576efe13 "Drop touch events from the driver" is the first commit to get anywhere near fixing this.

the second part would be to initialize the axes as relative axes instead of absolute ones and then adjust the pointer acceleration to feel approximately the same as before.
Comment 2 Peter Hutterer 2017-03-09 01:11:30 UTC
Closing as WONTFIX. Changing to relative axes would affect pointer acceleration I'm not touching that in synaptics, it's tricky enough in libinput
Comment 3 Peter Hutterer 2017-03-13 00:32:20 UTC

*** This bug has been marked as a duplicate of bug 31636 ***


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.