Bug 96848 - Slow and fast movements on T450s touchpad are unpredictable
Summary: Slow and fast movements on T450s touchpad are unpredictable
Status: RESOLVED INVALID
Alias: None
Product: Wayland
Classification: Unclassified
Component: libinput (show other bugs)
Version: unspecified
Hardware: x86-64 (AMD64) All
: medium normal
Assignee: Wayland bug list
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 98535
  Show dependency treegraph
 
Reported: 2016-07-07 15:40 UTC by Matt
Modified: 2017-02-20 23:40 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments
slow movement accelerating (95.88 KB, text/plain)
2016-07-07 15:40 UTC, Matt
Details

Description Matt 2016-07-07 15:40:23 UTC
Created attachment 124945 [details]
slow movement accelerating

Hi, 

I've been comparing the acceleration with the synaptics driver and with the new libinput driver. The small movements are really causing me a lot of pain.

It seems like the slow movements are too fast/unpredictable and the fast ones are too slow. Under the synaptics profile, the slow movements seem to have no acceleration (the touchpad is mapped to the screen area?) and the fast movements have higher acceleration. But in libinput, it's the opposite. The slow movements accelerate too much, and the fast ones don't accelerate enough. When I make small adjustments on the screen, I often overshoot the target, and even when making quick swipes, I still need several to get across the screen (as opposed to one or two in synaptics).

Is this a case of being nitpicky?

I've included the evemu log, although I doubt it helps. It just shows an example of accelerating under slow movement.

Thanks!

Libinput version 
==========
1.3.3-2.fc24

libinput settings
==========
$ xinput list-props "SynPS/2 Synaptics TouchPad"
Device 'SynPS/2 Synaptics TouchPad':
	Device Enabled (136):	1
	Coordinate Transformation Matrix (138):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Tapping Enabled (272):	1
	libinput Tapping Enabled Default (273):	0
	libinput Tapping Drag Enabled (274):	1
	libinput Tapping Drag Enabled Default (275):	1
	libinput Tapping Drag Lock Enabled (276):	0
	libinput Tapping Drag Lock Enabled Default (277):	0
	libinput Accel Speed (278):	-0.448529
	libinput Accel Speed Default (279):	0.000000
	libinput Natural Scrolling Enabled (280):	1
	libinput Natural Scrolling Enabled Default (281):	0
	libinput Send Events Modes Available (256):	1, 1
	libinput Send Events Mode Enabled (257):	0, 0
	libinput Send Events Mode Enabled Default (258):	0, 0
	libinput Left Handed Enabled (282):	0
	libinput Left Handed Enabled Default (283):	0
	libinput Scroll Methods Available (284):	1, 1, 0
	libinput Scroll Method Enabled (285):	1, 0, 0
	libinput Scroll Method Enabled Default (286):	1, 0, 0
	libinput Click Methods Available (287):	1, 1
	libinput Click Method Enabled (288):	1, 0
	libinput Click Method Enabled Default (289):	1, 0
	libinput Disable While Typing Enabled (290):	1
	libinput Disable While Typing Enabled Default (291):	1
	Device Node (259):	"/dev/input/event4"
	Device Product ID (260):	2, 7
	libinput Drag Lock Buttons (292):	<no items>
	libinput Horizonal Scroll Enabled (261):	1

Hardware
==========
Lenovo Thinkpad T450s

$ cat /sys/class/dmi/id/modalias 
dmi:bvnLENOVO:bvrJBET46WW(1.11):bd03/02/2015:svnLENOVO:pn20BXCTO1WW:pvrThinkPadT450s:rvnLENOVO:rn20BXCTO1WW:rvrSDK0E50512STD:cvnLENOVO:ct10:cvrNone:

Physical Dimensions
==========
100mm x 56mm (h x v)
Comment 1 Peter Hutterer 2016-08-01 05:29:46 UTC
there's two components that matter: libinput touchpad acceleration is different to the synaptics one (depending on the hardware, because the synaptics one doesn't take hw into account so it varies greatly, libinput is mostly the same on all touchpads). libinput is slower than synaptics by default and it is more tied to your fingers, i.e. once you stop moving it stops quicker than synaptics. this (theoretically) allows for more precise positioning since the cursor stops with your finger and you shouldn't overshoot too much.

as for small movements: the T450 has broken hardware. if you move slowly from left to right you see that the motion is not continuous but rather comes in waves. this is a hw issue, the sensors are too far apart (or the firmware filters it) and we don't get motion events in the gaps between. we work around this in libinput and avoid pointer jumps but there's only so much we can do, you still get the wavy motion. See Bug 94379 for more info.
Comment 2 Peter Hutterer 2016-08-25 00:17:17 UTC
question somewhat related here: do you see the cursor stall on slow movements? I'm experiencing this on my T450 here and it's unclear whether this is sporadic hw errors or not. Specifically: a very slow movement across the touchpad will cause the cursor to randomly stall for a few mm, then either jump to catch up or just keep moving after the pause. This goes away once moving fast enough and it appears to not be the case for all T450/T460 hardware. Can you confirm this?
Comment 3 bob 2016-08-27 10:10:19 UTC
i confirm, same problem on my T440.
Comment 4 Matt 2016-11-01 21:43:25 UTC
Sorry for the long delay in responding. Work got pretty busy.

Do you still need info for this Peter? Or is the T440 confirmation enough? I've switched back to synaptics for everyday use, but I can go back to libinput to test if it's helpful.

Matt
Comment 5 Peter Hutterer 2016-11-02 07:29:37 UTC
Well, I have a T440 and most of libinput's pointer accel was written against that :) It's not perfect but I've gotten pretty used to it by now.

I'm currently toying around with more things though, but I need to write some more debugging tools first.
Comment 6 Peter Hutterer 2016-11-24 00:12:06 UTC
see bug 90735, we have a commit that improves things significantly now. That also applies to the T440
Comment 7 Peter Hutterer 2016-12-21 03:12:50 UTC
See bug 98535, please try libinput master and report back whether this improves things. Thanks
Comment 8 Peter Hutterer 2017-02-20 23:40:16 UTC
needinfo for 2 months, closing. please re-open when the requested information is available


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.