Bug 101051

Summary: Two-finger scrolling is unreliable, hard to trigger
Product: Wayland Reporter: Brian Starkey <stark3y>
Component: libinputAssignee: Wayland bug list <wayland-bugs>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: stark3y
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: udev info, evemu info, xinput props
one-finger.txt: Normal cursor movement
two-finger-noscroll.txt: Two fingers, scrolling not triggered
two-finger-scroll.txt: Two-fingers, scrolling triggered
Plot for one-finger and two-finger stats

Description Brian Starkey 2017-05-15 19:53:36 UTC
Created attachment 131364 [details]
udev info, evemu info, xinput props

libinput version: 1.7.1
Device:           Lenovo Thinkpad 13 "ETPS/2 Elantech Touchpad"
DMI:              dmi:bvnLENOVO:bvrR0CET27W(1.15):bd09/05/2016:svnLENOVO:pn20GJCTO1WW:pvrThinkPad13:rvnLENOVO:rn20GJCTO1WW:rvrSDK0J40697WIN:cvnLENOVO:ct10:cvrNone:

See attached udev info, evemu device description, xinput props


Hi,

Two-finger scrolling on my touchpad became very, very hard to trigger after
updating from 1.5.3-1 to 1.7.1-1 (Arch package version). My guess would be
it's related to the pressure-based touch detection introduced in 1.7.0, but
that's just a guess.

Normal, single-finger touch events work fine, it's only two finger scrolling
which doesn't. I have to press very hard and deliberately to get two finger
scrolling to trigger at all - but even trying to do that it is pretty hard to
trigger.

Before the update, two-finger scrolling was as easy to trigger as normal mouse
movement, with very light finger pressure.

I've tried to collect evemu data showing the problem. See attached three
evemu logs:

one-finger.txt:
   Normal cursor movement

two-finger-noscroll.txt:
   Two fingers with similar applied pressure as one-finger.txt.
   Scrolling was not triggered.
   In fact, usually, this results in zero libinput events being generated
   (as reported by libinput-debug-events), but sometimes normal mouse movement
   is triggered.

two-finger-scroll.txt:
   Two fingers, on an attempt that did trigger two-finger scrolling.
   The pressure is very high.

I tried tweaking the pressure settings as described here[1], but it didn't
help (and mostly made one-finger movement worse).

I've also attached plotted evemu stats (as described in [1] again), for the
same movements (20 swipes upwards) with one and two fingers. The pressure for
two fingers appears to be lower than one, and there are significantly fewer
PRESSURE events for two fingers.

Let me know if there's anything more I can provide.

[1] https://wayland.freedesktop.org/libinput/doc/latest/touchpad_pressure.html
Comment 1 Brian Starkey 2017-05-15 19:54:29 UTC
Created attachment 131365 [details]
one-finger.txt: Normal cursor movement

evemu log for cursor movement
Comment 2 Brian Starkey 2017-05-15 19:55:14 UTC
Created attachment 131366 [details]
two-finger-noscroll.txt: Two fingers, scrolling not triggered
Comment 3 Brian Starkey 2017-05-15 19:55:39 UTC
Created attachment 131367 [details]
two-finger-scroll.txt: Two-fingers, scrolling triggered
Comment 4 Brian Starkey 2017-05-15 19:56:19 UTC
Created attachment 131368 [details]
Plot for one-finger and two-finger stats

Stats for 20 upward swipe motions, using one finger and two fingers
Comment 5 Brian Starkey 2017-05-15 20:44:43 UTC
FWIW, I bisected to:

commit 568d527caa4d0564b765ac082e948e19d1d22e13
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jan 10 15:58:21 2017 +1000

    touchpad: use pressure values for touch is-down decision
Comment 6 Brian Starkey 2017-05-15 21:51:19 UTC
...and seems to be fixed by:

commit 1dfedc6995cf63e004bd3e0b1d22ae263feb7362
Author: Paul Kocialkowski <contact@paulk.fr>
Date:   Fri Apr 28 15:29:03 2017 +0200

    udev: Select more generic pressure range values for Elantech touchpads

This actually uses the same pressure ranges I was trying in my own .hwdb file, but I didn't realise 1.7.1 didn't support that feature!

So hopefully everything will be fine in the next release.

Sorry for the noise.

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.