Summary: | Detect slot jumps on semi-mt devices | ||
---|---|---|---|
Product: | Wayland | Reporter: | Juanjo Benages <juanjo> |
Component: | libinput | Assignee: | Wayland bug list <wayland-bugs> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | medium | CC: | benjamin.tissoires, peter.hutterer |
Version: | 1.3.0 | ||
Hardware: | x86-64 (AMD64) | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
evemu recording of the device
Output of libinput-debug-events --enable-tap New evemu recording of the device dmesg |
Description
Juanjo Benages
2016-05-30 08:22:04 UTC
hmm, I tried replaying this on current master (f34c8d) and on 1.3.0 but I don't see the errors here. Can your reproduce this running libinput-debug-events --enable-tap and then replaying that recording? Created attachment 124217 [details]
Output of libinput-debug-events --enable-tap
Created attachment 124218 [details]
New evemu recording of the device
I don't see the errors in the replay. I think i messed up the recording. Sorry. But I have made a new recording with the error. I have also uploaded the output of libinput-debug-events --enable-tap of the new recording event at E: 0.542783 shows the issue, the touches are in slot 0 (4210/2560) and slot 1 (481/2550). But the finger release is misdetected, causing slot 1 to end and slot 0 to continue with slot 1's coordinates. This is the cause of the jumps but this only explains the error message with the link. I cannot reproduce your original messages (the invalid tap event ones), sorry Could you attach a dmesg of your laptop so I can figure out which kernel driver is in use? Looks like the jump is introduced by a bad tracking from the firmware or from the kernel. Created attachment 124240 [details]
dmesg
This is the dmesg output
The kernel version is linux-image-4.5.0-2-amd64/testing,now 4.5.4-1 amd64
thanks for the dmesg. Here are my analysis: - the touchpad is a synaptics one, using the non image sensor - the touchpad support multi-finger but given the poor tracking, the kernel sets the SEMI_MT flag. - the touchpad has the following caps: SYN_CAP_EXTENDED, SYN_CAP_MULTIFINGER, SYN_CAP_PALMDETECT, SYN_CAP_ADV_GESTURE So: - finger jumps in the slotted touches are normal here, we are using semi-mt protocol - at E: 0.542783, I don't think the ABS_X/Y are jumping, so you should be fine in term of scrolling for this event at least. Peter: when we have semi-mt devices, we can't assume the kernel won't send jumps. So I think libinput should not tell user-space that there is a jump and should simply detect and discard the jumps. ommit 92b21247f434037202e9ebb4355f08775d007ae2 Author: Peter Hutterer <peter.hutterer@who-t.net> Date: Fri Jun 10 10:30:24 2016 +1000 touchpad: don't warn about kernel jumps on semi-mt devices this silences the warning, I'm assuming you still see cursor jumps with the most recent libinput and a recent-ish kernel? Yes, I am seeing some jumps with libinput 1.3.1 and kernel 4.5 renaming so the summery is easier to understand: libinput needs a way to detect jumps between slots on semi-mt devices, specifically when one slot ends and the remaining one takes over the coordinates of the recent slot. looking at this again, we have the code for this already. tp_need_motion_history_reset() triggers when the number of finger changes so we paper over that slot change. juanjo, I'll need an evemu recording that isolates the problem with a description of what type of jump you are seeing. In the recording from comment 3 I can see scroll events and pointer motion but it's hard for me to tell whether the pointer motion is intentional based on the recording itself. I now have the kernel 4.6 and the scrolling behavior is better. if it's good enough we can close this bug, otherwise I'll need some more evemu recordings like outlined in comment 12 how are we going with this bug? Sorry for not responding before. You can close the bug. |
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.