High precision touchpad scrolling doesn't work in Wayland sessions (but does in Xorg)

Bug #1811219 reported by Daniel van Vugt
38
This bug affects 8 people
Affects Status Importance Assigned to Milestone
Chromium Browser
Unknown
Unknown
chromium-browser (Ubuntu)
Fix Released
Medium
Unassigned

Bug Description

High precision touchpad scrolling doesn't work in Wayland sessions (but does in Xorg).

I guess it's probably Xwayland failing to support the more advanced XInput stuff?

Note: This bug report is about high precision (and thus low latency) touchpad scrolling. It is not about "Smooth Scrolling" simply because "Smooth Scrolling" actually means something quite different in Chromium. :P

Test case:

1. In chrome://flags, set Smooth Scrolling to Disabled and restart the browser.
2. Use your touchpad (usually two fingers) to scroll a web page.

Observed:

In an Ubuntu session (pure Xorg), the scrolling is noticeably high precision like a Macbook or Chromebook. In a Wayland session however, the scrolling stutters badly like it's still using old-style mouse wheel emulation.

Note also: If you have "Smooth Scrolling" enabled then Chromium replaces the stutter with smoother scrolling but you can still tell it's broken in Wayland sessions because the latency is much higher. It's having to fake the smoothness by delaying and extrapolating from mouse wheel-style tick events.

ProblemType: Bug
DistroRelease: Ubuntu 19.04
Package: chromium-browser 71.0.3578.98-0ubuntu1
ProcVersionSignature: Ubuntu 4.18.0-11.12-generic 4.18.12
Uname: Linux 4.18.0-11-generic x86_64
ApportVersion: 2.20.10-0ubuntu14
Architecture: amd64
DRM.card0-DP-1:
 enabled: disabled
 dpms: Off
 status: disconnected
 edid-base64:
 modes:
DRM.card0-DP-2:
 enabled: enabled
 dpms: On
 status: connected
 edid-base64: AP///////wAQrEbwTEoxQQUZAQS1NCB4Oh31rk81syUNUFSlSwCBgKlA0QBxTwEBAQEBAQEBKDyAoHCwI0AwIDYABkQhAAAaAAAA/wBZQ00wRjUxUkExSkwKAAAA/ABERUxMIFUyNDEzCiAgAAAA/QA4TB5REQAKICAgICAgAUICAx3xUJAFBAMCBxYBHxITFCAVEQYjCR8HgwEAAAI6gBhxOC1AWCxFAAZEIQAAHgEdgBhxHBYgWCwlAAZEIQAAngEdAHJR0B4gbihVAAZEIQAAHowK0Iog4C0QED6WAAZEIQAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 modes: 1920x1200 1920x1080 1920x1080 1920x1080 1920x1080i 1920x1080i 1920x1080i 1920x1080 1920x1080i 1920x1080 1920x1080 1600x1200 1280x1024 1280x1024 1152x864 1280x720 1280x720 1280x720 1280x720 1024x768 1024x768 800x600 800x600 720x576 720x576 720x480 720x480 720x480 720x480 720x480 640x480 640x480 640x480 640x480 720x400
DRM.card0-DP-3:
 enabled: disabled
 dpms: Off
 status: disconnected
 edid-base64:
 modes:
DRM.card0-HDMI-A-1:
 enabled: disabled
 dpms: Off
 status: disconnected
 edid-base64:
 modes:
DRM.card0-HDMI-A-2:
 enabled: disabled
 dpms: Off
 status: disconnected
 edid-base64:
 modes:
Date: Thu Jan 10 17:11:06 2019
Desktop-Session:
 'None'
 'None'
 '/usr/local/share:/usr/share:/var/lib/snapd/desktop'
DetectedPlugins:

Env:
 'None'
 'None'
InstallationDate: Installed on 2018-12-04 (37 days ago)
InstallationMedia: Ubuntu 19.04 "Disco Dingo" - Alpha amd64 (20181203)
InstalledPlugins:
 /usr/lib/mozilla/plugins:
   => libgnome-shell-browser-plugin.so
         (size: 22496 bytes, mtime: Wed Dec 5 20:53:32 2018)
Load-Avg-1min: 2.33
Load-Processes-Running-Percent: 0.1%
MachineType: LENOVO 10M7CTO1WW
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.18.0-11-generic root=UUID=052b7096-9b82-4712-b596-7629d5f6498c ro quiet splash vt.handoff=1
SourcePackage: chromium-browser
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 02/06/2018
dmi.bios.vendor: LENOVO
dmi.bios.version: M16KT47A
dmi.board.name: 3102
dmi.board.vendor: LENOVO
dmi.board.version: SDK0J40709 WIN 3259627060530
dmi.chassis.type: 3
dmi.chassis.vendor: LENOVO
dmi.chassis.version: None
dmi.modalias: dmi:bvnLENOVO:bvrM16KT47A:bd02/06/2018:svnLENOVO:pn10M7CTO1WW:pvrThinkCentreM710s:rvnLENOVO:rn3102:rvrSDK0J40709WIN3259627060530:cvnLENOVO:ct3:cvrNone:
dmi.product.family: ThinkCentre M710s
dmi.product.name: 10M7CTO1WW
dmi.product.sku: LENOVO_MT_10M7_BU_Think_FM_ThinkCentre M710s
dmi.product.version: ThinkCentre M710s
dmi.sys.vendor: LENOVO
modified.conffile..etc.default.chromium-browser: [deleted]

Revision history for this message
Daniel van Vugt (vanvugt) wrote :
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Looks like it was implemented, but seems to have either regressed since then or just never been as precise as it should have been:

https://gitlab.freedesktop.org/xorg/xserver/commit/81a51a6cace6fdb54999ccdf1533dc28a2222bb9

Changed in xorg-server (Ubuntu):
importance: Undecided → Medium
description: updated
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Surprisingly, it's Chromium that's broken. Not Xwayland...

https://bugs.chromium.org/p/chromium/issues/detail?id=712737

Changed in xorg-server (Ubuntu):
status: New → Invalid
Changed in chromium-browser (Ubuntu):
status: New → Triaged
no longer affects: xorg-server (Ubuntu)
Revision history for this message
Daniel van Vugt (vanvugt) wrote :
Changed in chromium-browser (Ubuntu):
status: Triaged → Fix Committed
tags: added: fixed-upstream
removed: disco
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

^^^
Fixed in Chromium 84, apparently.

Revision history for this message
Olivier Tilloy (osomon) wrote :

Daniel: any chance you can test this with the chromium snap from the beta channel, and confirm the fix?

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Not today... I don't use a machine with a touchpad usually.

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Verified fixed in chromium 84 (beta).

Although that means it's now as good as Xorg sessions, which isn't really good enough IMHO. There's too much lag in both, which you can remove with 'Smooth Scrolling = Disabled' in chrome://flags/

Weird ChromeOS doesn't have any of these problems...

Revision history for this message
Olivier Tilloy (osomon) wrote :

Thanks for confirming the fix Daniel!

Changed in chromium-browser (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.