Bug 99267 - Cursor resolution/refresh rate decreases when a thumb is resting on the pad, especially with clickfinger behavior
Summary: Cursor resolution/refresh rate decreases when a thumb is resting on the pad, ...
Status: VERIFIED FIXED
Alias: None
Product: Wayland
Classification: Unclassified
Component: libinput (show other bugs)
Version: 1.5.0
Hardware: x86-64 (AMD64) Linux (All)
: medium normal
Assignee: Wayland bug list
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-01-04 04:23 UTC by Nate Graham
Modified: 2018-05-29 23:28 UTC (History)
3 users (show)

See Also:
i915 platform:
i915 features:


Attachments
evemu recording of drawing circles with a thumb on the pad with clickfinger, showing decreased resolution (47.36 KB, text/plain)
2017-01-04 04:23 UTC, Nate Graham
Details
evemu recording of drawing circles with no thumb on the pad with clickfinger, showing normal resolution (51.76 KB, text/plain)
2017-01-04 04:23 UTC, Nate Graham
Details
evemu recording of drawing circles with a thumb on the pad with areas behavior, showing slightly decreased resolution (31.91 KB, text/plain)
2017-01-04 04:24 UTC, Nate Graham
Details
evemu recording of drawing circles with no thumb on the pad with areas behavior, showing normal resolution (78.32 KB, text/plain)
2017-01-04 04:25 UTC, Nate Graham
Details

Description Nate Graham 2017-01-04 04:23:06 UTC
Created attachment 128736 [details]
evemu recording of drawing circles with a thumb on the pad with clickfinger, showing decreased resolution

Hardware: HP Spectre x360 with a Synaptics clickpad
Software: Fedora 25 + GNOME 3.22 + libinput built from git master  as of today

My touchpad's apparent resolution seems to be reduced when a thumb is rested on the touchpad. When I draw small circles on the pad with only my pointer finger, the refresh rate appears high, and the pointer seems to be moving at like 60 hz, or as fast as the screen can re-draw it. When I do the same with a thumb on the bottom of the pad, the apparent refresh rate slows down to something looking more like 20 hz.

This is extremely noticeable with the "clickfinger" behavior. Less so with "areas', but still observable if you're looking for it.

If this is dependent on RMI4 in Kernel 4.10, I have that on my machine and 4.10 is just around the corner, with 4.10-rc2 already out in the wild.
Comment 1 Nate Graham 2017-01-04 04:23:57 UTC
Created attachment 128737 [details]
evemu recording of drawing circles with no thumb on the pad with clickfinger, showing normal resolution
Comment 2 Nate Graham 2017-01-04 04:24:44 UTC
Created attachment 128738 [details]
evemu recording of drawing circles with a thumb on the pad with areas behavior, showing slightly decreased resolution
Comment 3 Nate Graham 2017-01-04 04:25:11 UTC
Created attachment 128739 [details]
evemu recording of drawing circles with no thumb on the pad with areas behavior, showing normal resolution
Comment 4 Peter Hutterer 2017-01-08 23:28:42 UTC
that's an artefact of PS/2, you'll notice that the framerate (and usually resolution) goes down whenever there are multiple fingers on the pad. Do you see the same happen with RMI4? If not, then we're "good", this is unfortunately a cantfix for PS/2
Comment 5 Nate Graham 2017-01-09 02:51:25 UTC
How can I definitively tell whether it's using PS/2 or RMI4? I do see this:

$ xinput | grep -i TouchPad
⎜   ↳ SynPS/2 Synaptics TouchPad              	id=14	[slave  pointer  (2)]

..Which suggests PS/2. But I'm using a 4.10 series Kernel. Is there anything special that needs to be done to enable RMI4 mode/code/whatever?
Comment 6 Peter Hutterer 2017-01-09 03:00:37 UTC
Check the PRODUCT field in udevadm info /sys/class/input/eventX or the ID line in the evemu-record output. The first field is the hex code for the bus type, linux/input.h has the varous BUS_* defines. 0x11 is serial, 0x1d is RMI, 0x18 is i2c. If it's neither of those, we have a problem ;)
Comment 7 Nate Graham 2017-01-09 03:19:44 UTC
evemu-record info:
N: SynPS/2 Synaptics TouchPad
I: 0011 0002 0007 01b1


$ udevadm info /sys/class/input/event4 | grep -i synap
E: LIBINPUT_MODEL_SYNAPTICS_SERIAL_TOUCHPAD=1


So looks like PS/2. Why isn't it using RMI4 slash do I need to explicitly force it to do so?
Comment 8 Peter Hutterer 2017-01-09 04:19:27 UTC
see https://bugs.freedesktop.org/show_bug.cgi?id=99064#c22
Comment 9 Nate Graham 2017-01-09 05:43:28 UTC
I don't have /sys/module/psmouse/parameters/synaptics_intertouch, and can't create it:

$ ls /sys/module/psmouse/parameters/
proto  rate  resetafter  resolution  resync_time  smartscroll

# echo 1 > /sys/module/psmouse/parameters/synaptics_intertouch
bash: /sys/module/psmouse/parameters/synaptics_intertouch: Permission denied

However, am I reading correctly in that other bug that not all of the necessary RMI4 work got merged into 4.10?
Comment 10 Peter Hutterer 2017-01-10 04:00:20 UTC
yeah, there are still a few bits missing, you'll have to grab benjamin's kernel to get everything working. the 4.10 kernel is missing the intertouch parameters, etc.
Comment 11 Peter Hutterer 2017-01-31 01:09:50 UTC
I just tested this on my T450p with a RMI4-enabled kernel and the problem does go away. The refresh rate on ps/2 with two fingers down is ca 20ms (as opposed to the usual ca 10ms. On rmi4, even with three fingers down it stays at ca 10ms.

I'm closing this bug because it's not something we could fix in libinput anyway and the upstream kernel will eventually take care of this.
Comment 12 Nate Graham 2017-01-31 20:24:08 UTC
Awesome, thanks!
Comment 13 Nate Graham 2017-05-21 15:39:51 UTC
Okay, so I'm running Kernel 4.11 in openSUSE Tumbleweed now. `xinput` still says my touchpad is using PS/2.

What's needed to get the touchpad to use the RMI4 protocol? Is this enabled in any extant kernel version? Is it planned for one? How would I go about finding this information for myself?
Comment 14 Peter Hutterer 2017-05-22 00:12:35 UTC
There was a bit of a setback with 4.11, I think 4.12 is the new goal. Also note that you may see a ps2 touchpad *in addition* to the RMI4 touchpad but that one won't send events. just check with evemu-record if it sends events, if not, then you're on RMI4 already.
Comment 15 Nate Graham 2017-05-22 03:15:29 UTC
Thanks Peter. Is there anywhere I find this information for myself so I don't have to bug you and clutter up closed bugzilla tickets asking?
Comment 16 Nate Graham 2017-11-16 05:32:04 UTC
OK, so I am now running libinput from git master and I have the 4.13.0 kernel, but there is still no improvement here. xinput still shows "SynPS/2 Synaptics TouchPad"

How do I turn on RMI4 mode?
Comment 17 Nate Graham 2018-05-29 22:53:45 UTC
Looks like my touchpad hardware is PS/2 only. :(
Comment 18 Peter Hutterer 2018-05-29 23:28:58 UTC
yeah, if that sysfs file never shows up, then there isn't much we can do, sorry


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.