Bug 97364

Summary: touchpad jumping cursor bug
Product: Wayland Reporter: Ritesh Raj Sarraf <rrs>
Component: libinputAssignee: Wayland bug list <wayland-bugs>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: benjamin.tissoires, peter.hutterer
Version: 1.4.0   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: evemu-record data
dmesg this boot
evemu data 1.4.2

Description Ritesh Raj Sarraf 2016-08-16 12:24:24 UTC
Created attachment 125815 [details]
evemu-record data

Hello,

Based on the details mentioned in https://wayland.freedesktop.org/libinput/doc/1.4.0/reporting_bugs.html
I'm filing this bug. I hope it is good information and a valid bug.


I have verified the evemu recorded data with evemu-play. So I've attached it with this bug report.


This is a Debian box. Most stuff work.

rrs@learner:~/.rrs-home/Community/libinput-gestures (non-system-wide)$ dpkg -l | grep libinput
ii  libinput-bin                              1.4.0-1                                amd64        input device management and event handling library - udev quirks
ii  libinput-tools                            1.4.0-1                                amd64        input device management and event handling library - command line tools
ii  libinput10:amd64                          1.4.0-1                                amd64        input device management and event handling library - shared library
ii  xserver-xorg-input-libinput               0.19.0-1                               amd64        X.Org X server -- libinput input driver
ii  xserver-xorg-input-libinput-dbg           0.19.0-1                               amd64        X.Org X server -- libinput input driver (debug symbols)
2016-08-16 / 17:47:05 ♒♒♒  ☺  



rrs@learner:~/.rrs-home/Community/libinput-gestures (non-system-wide)$ xinput list-props "SynPS/2 Synaptics TouchPad"
Device 'SynPS/2 Synaptics TouchPad':
	Device Enabled (137):	1
	Coordinate Transformation Matrix (139):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Tapping Enabled (277):	1
	libinput Tapping Enabled Default (278):	0
	libinput Tapping Drag Enabled (279):	1
	libinput Tapping Drag Enabled Default (280):	1
	libinput Tapping Drag Lock Enabled (281):	0
	libinput Tapping Drag Lock Enabled Default (282):	0
	libinput Accel Speed (283):	0.000000
	libinput Accel Speed Default (284):	0.000000
	libinput Natural Scrolling Enabled (285):	1
	libinput Natural Scrolling Enabled Default (286):	0
	libinput Send Events Modes Available (257):	1, 1
	libinput Send Events Mode Enabled (258):	0, 0
	libinput Send Events Mode Enabled Default (259):	0, 0
	libinput Left Handed Enabled (287):	0
	libinput Left Handed Enabled Default (288):	0
	libinput Scroll Methods Available (289):	1, 1, 0
	libinput Scroll Method Enabled (290):	1, 0, 0
	libinput Scroll Method Enabled Default (291):	1, 0, 0
	libinput Click Methods Available (292):	1, 1
	libinput Click Method Enabled (293):	1, 0
	libinput Click Method Enabled Default (294):	1, 0
	libinput Middle Emulation Enabled (295):	0
	libinput Middle Emulation Enabled Default (296):	0
	libinput Disable While Typing Enabled (297):	1
	libinput Disable While Typing Enabled Default (298):	1
	Device Node (260):	"/dev/input/event5"
	Device Product ID (261):	2, 7
	libinput Drag Lock Buttons (299):	<no items>
	libinput Horizonal Scroll Enabled (262):	1
2016-08-16 / 17:51:37 ♒♒♒  ☺  



Vendor/Model: Lenovo Yoga 2 13

rrs@learner:~/.rrs-home/Community/libinput-gestures (non-system-wide)$ cat /sys/class/dmi/id/modalias 
dmi:bvnLENOVO:bvr96CN31WW(V1.17):bd07/21/2015:svnLENOVO:pn20344:pvrLenovoYoga213:rvnLENOVO:rnINVALID:rvr31900059WIN:cvnLENOVO:ct10:cvrLenovoYoga213:
2016-08-16 / 17:52:21 ♒♒♒  ☺  


libinput-list-devices reports:

Device:           SynPS/2 Synaptics TouchPad
Kernel:           /dev/input/event5
Group:            8
Seat:             seat0, default
Size:             87.45x58.16mm
Capabilities:     pointer 
Tap-to-click:     disabled
Tap-and-drag:     enabled
Tap drag lock:    disabled
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: disabled
Calibration:      n/a
Scroll methods:   *two-finger edge 
Click methods:    *button-areas clickfinger 
Disable-w-typing: enabled
Accel profiles:   none
Rotation:         n/a
Comment 1 Peter Hutterer 2016-09-06 09:33:25 UTC
can you attach your dmesg please. something isn't right here, Benjamin?

  E: 13.573759 0003 002f 0000     # EV_ABS / ABS_MT_SLOT          0
  E: 13.573759 0003 0035 4057     # EV_ABS / ABS_MT_POSITION_X    4057
  E: 13.573759 0003 0036 2047     # EV_ABS / ABS_MT_POSITION_Y    2047
  E: 13.573759 0003 003a 0046     # EV_ABS / ABS_MT_PRESSURE      46
  E: 13.573759 0003 0035 4816     # EV_ABS / ABS_MT_POSITION_X    4816
  E: 13.573759 0003 0036 2244     # EV_ABS / ABS_MT_POSITION_Y    2244
  E: 13.573759 0003 003a 0040     # EV_ABS / ABS_MT_PRESSURE      40
  E: 13.573759 0003 002f 0001     # EV_ABS / ABS_MT_SLOT          1
  E: 13.573759 0003 0039 -001     # EV_ABS / ABS_MT_TRACKING_ID   -1
  E: 13.573759 0003 0000 4816     # EV_ABS / ABS_X                4816
  E: 13.573759 0003 0001 2244     # EV_ABS / ABS_Y                2244
  E: 13.573759 0003 0018 0040     # EV_ABS / ABS_PRESSURE         40
  E: 13.573759 0001 014e 0000     # EV_KEY / BTN_TOOL_TRIPLETAP   0
  E: 13.573759 0001 014f 0001     # EV_KEY / BTN_TOOL_QUADTAP     1
  E: 13.573759 0000 0000 0000     # ------------ SYN_REPORT (0) ----------
Comment 2 Ritesh Raj Sarraf 2016-09-06 09:58:23 UTC
Created attachment 126239 [details]
dmesg this boot
Comment 3 Peter Hutterer 2016-09-09 04:50:58 UTC
Can you try libinput 1.4.2 please (or 1.4.901 if you have it). That put extra bit in to avoid cursor jumps in exactly the case you're experiencing here.
Comment 4 Ritesh Raj Sarraf 2016-09-09 18:00:32 UTC
(In reply to Peter Hutterer from comment #3)
> Can you try libinput 1.4.2 please (or 1.4.901 if you have it). That put
> extra bit in to avoid cursor jumps in exactly the case you're experiencing
> here.

hi peter,

I'm still able to hit the bug with 1.4.2, though I'd say I was hitting it when
quickly moving 2-3 fingers around, randomly.


event5 	POINTER_AXIS     +89.70s	vert -4.29* horiz 12.81*
event5 	POINTER_AXIS     +89.72s	vert -1.49* horiz 13.90*
event5 	POINTER_AXIS     +89.74s	vert 2.83* horiz 14.51*
event5 	POINTER_AXIS     +89.76s	vert 7.97* horiz 14.82*
event5 	POINTER_AXIS     +89.77s	vert 13.49* horiz 15.17*
event5 	POINTER_AXIS     +89.79s	vert 18.03* horiz 14.32*
libinput error: kernel bug: Touch jump detected and discarded.
See https://wayland.freedesktop.org/libinput/doc/1.4.2/touchpad_jumping_cursor.html for details
event5 	POINTER_AXIS     +89.81s	vert 18.54* horiz 12.04*
event5 	POINTER_AXIS     +89.83s	vert 12.99* horiz 7.57*
event5 	POINTER_AXIS     +89.85s	vert 5.14* horiz 2.47*
libinput error: kernel bug: Touch jump detected and discarded.
See https://wayland.freedesktop.org/libinput/doc/1.4.2/touchpad_jumping_cursor.html for details
event5 	POINTER_AXIS     +89.87s	vert -0.64* horiz -4.01*
event5 	POINTER_AXIS     +89.89s	vert -8.26* horiz -15.32*
event5 	POINTER_AXIS     +89.91s	vert -17.72* horiz -24.36*
event5 	POINTER_AXIS     +89.92s	vert -21.81* horiz -24.70*
event5 	POINTER_AXIS     +89.94s	vert -18.76* horiz -18.53*
event5 	POINTER_AXIS     +89.96s	vert -11.08* horiz -10.34*
event5 	POINTER_AXIS     +89.98s	vert -3.84* horiz -5.40*
event5 	POINTER_AXIS     +90.00s	vert 0.06* horiz -6.14*
event5 	POINTER_AXIS     +90.14s	vert -0.10* horiz 0.00
event5 	POINTER_AXIS     +90.16s	vert -0.70* horiz 0.00
event5 	POINTER_AXIS     +90.20s	vert -1.24* horiz 0.00
event5 	POINTER_AXIS     +90.22s	vert -0.60* horiz 0.00
event5 	POINTER_AXIS     +90.52s	vert 0.32* horiz 0.00
event5 	POINTER_AXIS     +90.55s	vert 0.00* horiz 0.00*
event5 	GESTURE_PINCH_BEGIN +91.47s	3
event5 	GESTURE_PINCH_UPDATE +91.47s	3  0.36/ 0.59 ( 0.77/ 1.27 unaccelerated)  1.00 @  0.09
event5 	GESTURE_PINCH_UPDATE +91.49s	3  0.08/ 0.00 ( 0.39/ 0.00 unaccelerated)  1.00 @  0.04
event5 	GESTURE_PINCH_UPDATE +91.53s	3  0.07/ 0.00 ( 0.39/ 0.00 unaccelerated)  1.00 @  0.04
event5 	GESTURE_PINCH_UPDATE +91.55s	3  0.06/ 0.00 ( 0.39/ 0.00 unaccelerated)  1.00 @  0.04
event5 	GESTURE_PINCH_UPDATE +91.57s	3  0.06/ 0.00 ( 0.39/ 0.00 unaccelerated)  1.00 @  0.04
event5 	GESTURE_PINCH_UPDATE +91.59s	3  2.02/ 0.00 ( 9.65/ 0.00 unaccelerated)  1.01 @  0.99
event5 	GESTURE_PINCH_UPDATE +91.61s	3  3.34/ 0.00 (10.81/ 0.00 unaccelerated)  1.03 @  1.08
event5 	GESTURE_PINCH_UPDATE +91.63s	3  4.39/ 3.11 (11.19/ 7.94 unaccelerated)  1.03 @  1.61
event5 	GESTURE_PINCH_UPDATE +91.65s	3 11.27/ 4.06 (28.18/10.16 unaccelerated)  1.03 @  1.93
event5 	GESTURE_PINCH_UPDATE +91.67s	3  5.80/ 5.67 (14.28/13.97 unaccelerated)  1.02 @  2.39
event5 	GESTURE_PINCH_UPDATE +91.69s	3  9.71/ 7.85 (22.00/17.78 unaccelerated)  1.03 @  3.40
event5 	GESTURE_PINCH_UPDATE +91.71s	3 14.33/ 8.73 (31.26/19.05 unaccelerated)  1.04 @  3.96
event5 	GESTURE_PINCH_UPDATE +91.73s	3 15.09/12.87 (31.26/26.67 unaccelerated)  1.03 @  3.67
event5 	GESTURE_PINCH_UPDATE +91.75s	3 12.36/14.61 (24.70/29.21 unaccelerated)  1.04 @  4.62
event5 	GESTURE_PINCH_UPDATE +91.77s	3 14.39/13.62 (28.18/26.67 unaccelerated)  1.07 @  4.39
event5 	GESTURE_PINCH_UPDATE +91.78s	3 11.96/13.77 (23.16/26.67 unaccelerated)  1.09 @  3.99
event5 	GESTURE_PINCH_UPDATE +91.80s	3 11.40/13.82 (22.00/26.67 unaccelerated)  1.11 @  3.75
event5 	GESTURE_PINCH_UPDATE +91.82s	3 11.45/14.54 (22.00/27.94 unaccelerated)  1.13 @  3.72
event5 	GESTURE_PINCH_UPDATE +91.84s	3 10.71/17.29 (20.46/33.02 unaccelerated)  1.16 @  4.05
event5 	GESTURE_PINCH_UPDATE +91.86s	3 13.06/18.13 (24.70/34.29 unaccelerated)  1.19 @  4.02
event5 	GESTURE_PINCH_UPDATE +91.88s	3 16.58/19.77 (30.88/36.83 unaccelerated)  1.22 @  4.00
libinput error: kernel bug: Touch jump detected and discarded.
See https://wayland.freedesktop.org/libinput/doc/1.4.2/touchpad_jumping_cursor.html for details
event5 	GESTURE_PINCH_UPDATE +91.90s	3 10.89/15.84 (20.07/29.21 unaccelerated)  1.26 @  3.05
event5 	GESTURE_PINCH_END +91.94s	3
event5 	POINTER_MOTION   +96.53s	  0.00/ -0.06
event5 	POINTER_MOTION   +96.53s	  0.00/ -0.92
event5 	POINTER_MOTION   +96.54s	  0.00/ -5.44



rrs@learner:~$ libinput-list-devices --version
1.4.2
2016-09-09 / 23:28:53 ♒♒♒  ☺
Comment 5 Ritesh Raj Sarraf 2016-09-09 18:04:19 UTC
Created attachment 126418 [details]
evemu data 1.4.2
Comment 6 Peter Hutterer 2016-09-12 00:22:05 UTC
(In reply to Ritesh Raj Sarraf from comment #4)
> I'm still able to hit the bug with 1.4.2, though I'd say I was hitting it
> when quickly moving 2-3 fingers around, randomly.

well, yes, that's expected :)
the code is based on detecting an overly fast movement that usually indicates some jump in the tracking. You can force this to occur, but it wouldn't be normal interaction with the system. The main question is whether you still see this in normal use.

also note that when the error message appears, it means libinput has detected the jump and discarded it, so you don't actually get a visible jump of the cursor. From how I read the original comment, you were getting actual jumps, not just the error message, right? at least the jumps should be gone now.
Comment 7 Ritesh Raj Sarraf 2016-09-12 12:22:18 UTC
(In reply to Peter Hutterer from comment #6)
> 
> also note that when the error message appears, it means libinput has
> detected the jump and discarded it, so you don't actually get a visible jump
> of the cursor. From how I read the original comment, you were getting actual
> jumps, not just the error message, right? at least the jumps should be gone
> now.

Yes. ON 1.4.0, I was having this issue more frequent. I think with 1.4.1+ the jumps have reduced dramatically and my 2,3 and 4 finger swipes are working much much better.

Thank you very much for the work. Never had touchpad (and gestures) worked so well. I'm marking this bug as fixed now.

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.