Summary: | [regression:2603ad69] edge-scrolling one pixel equals one full scroll on Alps pad | ||
---|---|---|---|
Product: | xorg | Reporter: | JR <zorael> |
Component: | Input/synaptics | Assignee: | Peter Hutterer <peter.hutterer> |
Status: | RESOLVED FIXED | QA Contact: | |
Severity: | normal | ||
Priority: | medium | CC: | giuseppe.bilotta, lists, zorael |
Version: | git | ||
Hardware: | x86-64 (AMD64) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: | ||
Attachments: |
what is the output of synclient -l and can you please record such a motion with evemu. sudo evemu-describe /dev/input/eventXX > touchpad.desc sudo evemu-record /dev/input/eventXX > touchpad.events Where XX should be the event number of your touchpad (see /proc/bus/input/devices). During evemu-record, perform the input needed to reproduce the issue. Then attach both files here. You _must_ VT-switch away from the X server before running evemu-record. Created attachment 57772 [details]
synclient output, evemu device description and event recording
Tarball attached.
For the recording I did three full edge scrolls (bottom to top and back).
Created attachment 57845 [details] [review] 0001-Fix-scoll-increment-for-non-smooth-scrolling-46617.patch quickpatch, but it should fix it, can you pleas test it? The patch works for me (Elantech PS/2 touchpad, v3; like Synaptics). commit cddab79c408db3b13905a2be72aff4f7bf1406f8 Author: Peter Hutterer <peter.hutterer@who-t.net> Date: Thu Mar 1 16:27:01 2012 +1000 Fix scoll increment for non-smooth scrolling (#46617) I'm afraid this fix actually broke support for my device: with the default Scrolling Distance of 100 I now need a full finger swipe, from top to bottom, just to get a single notch in scrolling. Setting the Scrolling Distance to something like 10 makes it usable again. Excerpt from Xorg.0.log: [ 87.572] (--) synaptics: SynPS/2 Synaptics TouchPad: x-axis range 1472 - 5472 [ 87.572] (--) synaptics: SynPS/2 Synaptics TouchPad: y-axis range 1408 - 4448 [ 87.572] (--) synaptics: SynPS/2 Synaptics TouchPad: pressure range 0 - 255 [ 87.572] (--) synaptics: SynPS/2 Synaptics TouchPad: finger width range 0 - 15 [ 87.572] (--) synaptics: SynPS/2 Synaptics TouchPad: buttons: left right [ 87.572] (--) synaptics: SynPS/2 Synaptics TouchPad: Vendor 0x2 Product 0x7 [ 87.572] (--) synaptics: SynPS/2 Synaptics TouchPad: touchpad found in dmesg the device is identified as [ 8.486101] psmouse serio1: synaptics: Touchpad model: 1, fw: 6.5, id: 0x1c0b1, caps: 0xa04751/0xa00000/0x0 Can I have your full log please and the output of synclient -l? Are we talking edge scrolling here or twofinger scrolling? Does the speed of swiping the finger matter? Further information: I'm running Debian unstable. The issue presents itself both with the official Debian package and with latest synaptics driver compiled with git. Furthermore, some times (I have not been able to find out if it's just a matter of time, or it depends on some other factor) the X server locks up due to too many events received. This is an old touchpad that doesn't support two-finger detection, so it's an edge scroll. I'm attaching a complete Xorg log, including the backtraces corresponding to the X server lockup. After the second lockup, even if control goes back to the server, I cannot do anything but forcefully terminate the server (I cannot change window, nor with the keyboard nor with mouse, etc). Created attachment 59025 [details]
Xorg log including backtraces from server stall
This was produced with self-built driver from git version 4a80c0dc38ea4dafcb112191c2dd7e0082193263 (tag xf86-input-synaptics-1.5.99.902)
Forgot to reply about the speed of swipe: with the default settings, I only get _one_ scroll event if I sweep the finger very fast from top to bottom of the edge. Created attachment 59026 [details]
synclient -l log (after setting the scrolling deltas to 10)
synclient -l output. This is after setting the scrolling deltas to 10 as opposed to the default value 100.
I noticed that your Hysteresis settings are higher than my defaults here (8, not 25). This may have an effect. Other than that, I'm not sure but it's worth trying what difference this makes. Either way, I think I need to reproduce this bug, can you please run evemu against the device and record both the device and one event sequence of edge scrolling. http://people.freedesktop.org/~whot/evemu/ Created attachment 59048 [details]
evemu output for scrolling on my touchpad
The zip contains three files: synps2.desc produced by evemu-describe, and .events and .events2 from evemu-record. The difference between events and events2 is the speed of the edge motion: with events, no scrolling would be produced, with events2 a (small amount of) scrolling would be produced; both motions cover the whole edge (top to bottom).
You might be onto something with the Hysteresis thing. I'm noticing that I sometimes get a scrolling even with slower motions, esp. while I'm already scrolling; also, the amount of scrolling doesn't seem to be consistent: the same amount of motion may give me different amounts of scrolling at different times (initial motion, while already scrolling, etc). (By the way, aside from the annoyance of changing the delta settings, my biggest problem with this driver version is the sporadic lockups that tend to force me to kill the server to regain control.) Ok, I tried setting "Synaptics Noise Cancellation" to 0 0. The situation has improved some, but: (1) the scrolling still feels sluggish, as if stuck in molasses (2) smaller motions that used to generate scrolling still don't work. Setting the scrolling distance to something much lower than 100 (in the orders of the 10s or 20s) while keeping the noise cancellation at the default 25 still provides the best (for me) experience. At least between one lockup and the next. I'm new to this. I recently got synaptics-1.5.99-902-1. It two-finger scrolled poorly. Adjusting VertScrollDelta to a small number (5-10) helped. Previously I had 1.5.0-2 which worked fine. I git-bisected this scrolling behaviour and it seems to occur with this patch related to this bug. Two-finger scrolling seems very sensitive/fast before this patch which I guess is a different issue. I hope I have run git bisect, and interpreted its output, correctly. This is what was displayed on the last run: phil@min:~/Development/synaptics.git$ git bisect good cddab79c408db3b13905a2be72aff4f7bf1406f8 is the first bad commit commit cddab79c408db3b13905a2be72aff4f7bf1406f8 Author: Peter Hutterer <peter.hutterer@who-t.net> Date: Thu Mar 1 16:27:01 2012 +1000 Fix scoll increment for non-smooth scrolling (#46617) Introduced in 2603ad69b997c999404ecc441e0d64ea2cc22018. Previously, the delta was incremented by (actual delta/scroll dist), button clicks where then sent while (delta-- >= 1). After 2603ad69b997c999404ecc441e0d64ea2cc22018, the delta was incremented by the delta only, scroll dist was used as increment in the smooth scrolling information. On non-smooth-scrolling servers, the driver would now send too many events. Restore the old behaviour by dividing by the scroll distance before entering the button click loop. X.Org Bug 46617 <http://bugs.freedesktop.org/show_bug.cgi?id=46617> Tested-by: Peter Zotov <whitequark@whitequark.org> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> :040000 040000 2949f0ddca5e3b158adcf9044eb6c5e3f0bff990 0958387eee6136a5aacdff9db87bbad7cddcdd98 M src (In reply to comment #8) > Furthermore, some times (I have not been able to find out if it's > just a matter of time, or it depends on some other factor) the X server locks > up due to too many events received. fwiw 1c155f644824133315ac5b3dac9076db71430eb6 should have fixed this part. I tried the current git and the scrolling seems to be fixed indeed: the touchpad is again usable without any customization of the input values. I do not know if the X server lock / too many events errors is fixed too yet, since I just started using the new version and the problem was not reproducible consistently. I believe we can mark this issue as fixed though. If I happen to come across the "Too many events" error and lockup, I will reopen it. issue demonstrated with the evemu log fixed with commit 1a76d9f00e1e54ba912a47aa665968e0cfe1b8a0 Author: Peter Hutterer <peter.hutterer@who-t.net> Date: Thu Apr 26 11:47:19 2012 +1000 Don't unconditionally divide by scroll_dist_vert (#46617) |
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.
Kubuntu 11.10 amd64 running on a Dell Precision E6520. xinput reports the touchpad as being an Alps. xf86-input-synaptics is from git, and xorg is otherwise from the xorg-edgers ppa. Full package version is 2:1.11.2.902+git20111209+server-1.11-branch.0ca8869e-0ubuntu0sarvatt~oneiric. The linux kernel is version 3.3.0rc4. Since starting to use the Synaptics driver from git, edge-scrolling has become unusably sensitive. One pixel's worth of finger movement translates to one scroll "tick" (about ~3 lines of console text). I bisected it to commit 2603ad69 (Oct 18 2011); "Use the scroll distances as increment for scrolling valuator axes". The bug goes away if I build the commit previous (4f46057a). I'd be more than happy to provide more debugging information (dumps etc), but before receiving instructions I don't know what would help. If of any interest whatsoever, alps is mentioned in dmesg as follows; >[ 11.137622] alps.c: E6 report: 00 00 64 >[ 11.160525] alps.c: E7 report: 73 02 64 >[ 11.608841] alps.c: E6 report: 00 00 64 >[ 11.627972] alps.c: E7 report: 73 02 64 >[ 11.744804] alps.c: trackstick E7 report: 42 02 3c