Bug 103619

Summary: libinput has problems with precise mouse pointer movement on Lenovo X1v5
Product: Wayland Reporter: Philipp Kern <pkern>
Component: libinputAssignee: Wayland bug list <wayland-bugs>
Status: RESOLVED DUPLICATE QA Contact:
Severity: normal    
Priority: medium CC: daniel.van.vugt, peter.hutterer
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: up/down scrolling lag
left/right scrolling lag
overshoot
small circles

Description Philipp Kern 2017-11-08 14:50:05 UTC
Created attachment 135301 [details]
up/down scrolling lag

On a Lenovo X1v5 (and to some degree also on X1v4, but that'd be a separate bug) initial touchpad movement is delayed by a few ms. You move the finger and the mouse cursor lags behind. It feels like the cursor is sticky. Two dumps attached for up/down and left/right movements.

I also have a problem with overshoot, i.e. it feels very hard to precisely hit the target and I always need to correct down. Unfortunately after a while the brain adjusts. The dump tries to show how in the last few ms the pointer goes a bit further and then I need to adjust for that.

P: /devices/platform/i8042/serio1/input/input5/event5
N: input/event5
E: DEVNAME=/dev/input/event5
E: DEVPATH=/devices/platform/i8042/serio1/input/input5/event5
E: ID_BUS=i8042
E: ID_INPUT=1
E: ID_INPUT_HEIGHT_MM=53
E: ID_INPUT_TOUCHPAD=1
E: ID_INPUT_TOUCHPAD_INTEGRATION=internal
E: ID_INPUT_WIDTH_MM=98
E: LIBINPUT_DEVICE_GROUP=11/2/7/1b1:isa0060/serio1
E: LIBINPUT_MODEL_SYNAPTICS_SERIAL_TOUCHPAD=1
E: MAJOR=13
E: MINOR=69
E: SUBSYSTEM=input
E: USEC_INITIALIZED=40887057

Model: Lenovo N1MET37W / X1 Carbon v5

dmi:bvnLENOVO:bvrN1MET37W(1.22):bd07/04/2017:svnLENOVO:pn20HQS0EG1J:pvrThinkPadX1Carbon5th:rvnLENOVO:rn20HQS0EG1J:rvrNotDefined:cvnLENOVO:ct10:cvrNone:

Physical dimensions: 56mm(height)x100mm(width)
Comment 1 Philipp Kern 2017-11-08 14:50:24 UTC
Created attachment 135302 [details]
left/right scrolling lag
Comment 2 Philipp Kern 2017-11-08 14:50:37 UTC
Created attachment 135303 [details]
overshoot
Comment 3 Philipp Kern 2017-11-08 14:51:46 UTC
libinput version: 1.8.0-1 (Debian)
xserver-xorg-input-libinput: 0.23.0-2 (Debian)
Comment 4 Peter Hutterer 2017-11-08 22:28:23 UTC
Probably a duplicate of bug 98839?
Comment 5 Philipp Kern 2017-11-08 23:49:05 UTC
Yup, sounds pretty much like it. I'll try to build it tomorrow and report back by the end of this week.

(And thanks for your work on libinput!)
Comment 6 Philipp Kern 2017-11-09 15:06:29 UTC
The patch from 98339 makes it much better indeed. The lag is gone.

There's still a problem in making precise movements. If I try to trace the reload button in Chrome the pointer often jerks around. I fear that the attached trace (from X1v5, but also observable on X1v4) doesn't quite show what I mean? It's a constant struggle of overshoot (probably because of how pointer acceleration works) and small jumps.
Comment 7 Philipp Kern 2017-11-09 15:06:45 UTC
Created attachment 135356 [details]
small circles
Comment 8 Daniel van Vugt 2018-01-10 08:24:04 UTC
I have been testing an X1 Carbon gen 5 today and have confirmed that all it needs is the fix for bug 98839. That's due for release in libinput 1.10.

So this is probably a duplicate of bug 98839.
Comment 9 zach.moazeni 2018-02-15 15:39:38 UTC
I'm not sure if I should comment this here or on https://bugs.freedesktop.org/show_bug.cgi?id=98839 but even with 1.10, I'm still having the same troubles with the trackpoint.

I'm using a Thinkpad X1 Yoga on Arch.

I'm having to downgrade to libinput v1.8.3 in order to use the trackpoint without giving up on it entirely.
Comment 10 Daniel van Vugt 2018-02-16 01:44:51 UTC
Zach,
Please log a new bug for that:
https://bugs.freedesktop.org/enter_bug.cgi?product=wayland&component=libinput

Philipp,
I'm afraid to tell you that after fixing bug 98839, the remaining problems with the X1 Carbon gen 4/5 are mostly hardware problems. It's just laggy hardware/firmware. I have verified this myself on both models, and that gen 3 has no such problem, and that many other laptops have no such problem. Only the gen 4 
 and gen 5 X1 Carbon's have laggy touchpad hardware. I know it's very disappointing.
  Slightly encouraging is that in mouse emulation mode (single point support), the lag is gone. I don't know how to achieve this in Linux but it's visible during Windows 10 setup. The lag returns after the OS installs multi-touch support. So the lag sounds like it's rooted in the touchpad firmware for multi-touch support.
  There is only one remaining software fix I can think of that might/should help you. That is to switch to the 'flat' acceleration profile:
  https://wayland.freedesktop.org/libinput/doc/latest/pointer-acceleration.html
However I don't know of any way for regular users to do that.

Failing a profile change, this bug is a pure duplicate of bug 98839, plus hardware/firmware faults.
Comment 11 Philipp Kern 2018-02-16 10:49:39 UTC
Thanks, Daniel! What we do know, however, is that the X1v4 was fine with synaptics on trusty and only when we upgraded to a distribution that used libinput, it became weird. That said, we never tested the X1v5 with the synaptics driver, so your statement might very well be accurate for this model.

Is there a way to confirm at runtime that libinput actually consumed the pointer acceleration profile? I know I tried to change it but wasn't sure if my changes actually took effect.
Comment 12 Daniel van Vugt 2018-02-19 01:25:58 UTC
If you're talking about the Gnome Settings GUI then I suspect that has no effect. That is probably the acceleration profile for the mouse only. I don't think there is a GUI yet to change the acceleration profile of the touchpad(?)...
Comment 13 Philipp Kern 2018-02-19 10:23:47 UTC
I tried modifying the hwdb, but I didn't know if that actually had an effect. It's easy for me to ship a different acceleration profile using Puppet in case I can somehow inquire libinput for its configuration.
Comment 14 Nate Graham 2018-02-20 01:32:07 UTC

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

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.