Mir

[regression] Cursor mostly does not move at all in response to slow mouse movement, but then sometimes jumps

Bug #1528109 reported by Daniel van Vugt on 2015-12-21
18
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Canonical System Image
Undecided
Unassigned
Mir
Fix Released
High
Daniel van Vugt
0.18
Won't Fix
High
Unassigned
0.20
Won't Fix
High
Unassigned
0.21
Fix Committed
High
Daniel van Vugt
libinput (Ubuntu)
Undecided
Unassigned
mir (Ubuntu)
High
Unassigned
qtmir (Ubuntu)
Undecided
Unassigned
unity8 (Ubuntu)
Undecided
Unassigned

Bug Description

Starting in Mir 0.18 I've noticed with a Microsoft Intellimouse Explorer 3.0 that moving it slowly does not move the cursor. That is unless I move it slowly for a while, and then the cursor jumps.

Xorg and Mir 0.17 do not have this problem.

Related branches

Daniel van Vugt (vanvugt) wrote :

Split into two bugs with bug 1528110.

description: updated
Daniel van Vugt (vanvugt) wrote :

Now I can't get the cursor to move in any version of Mir On X. Just very rare erratic jumps.

description: updated
tags: added: regression
summary: - Mouse movement is unreliable and unpredictable in mesa-x11 (Mir On X)
+ [regression] Mouse movement is unreliable and unpredictable in mesa-x11
+ (Mir On X)
summary: - [regression] Mouse movement is unreliable and unpredictable in mesa-x11
- (Mir On X)
+ Mouse movement is unreliable and unpredictable in mesa-x11 (Mir On X)
description: updated
tags: removed: regression

Ahah. It's not mesa-x11 at all because the same problem happens in mesa-kms too.

summary: - Mouse movement is unreliable and unpredictable in mesa-x11 (Mir On X)
+ [regression] Cursor mostly does not move in response to slow mouse
+ movement, and then jumps
description: updated
tags: added: regression
Changed in mir:
importance: Undecided → High
milestone: none → 0.19.0
Daniel van Vugt (vanvugt) wrote :

Related to bug 1524145 I guess.

Daniel van Vugt (vanvugt) wrote :

Linked a couple of related workaround branches. Not sure if either qualify as a fix though.

Changed in mir:
status: New → Triaged
summary: - [regression] Cursor mostly does not move in response to slow mouse
- movement, and then jumps
+ [regression] Cursor mostly does not move at all in response to slow
+ mouse movement, but then sometimes jumps
Daniel van Vugt (vanvugt) wrote :

Curiously, --input-report=log shows the raw input events coming in as I move the mouse slowly:

[1450839723.943327] input: Received event time=5432123162000 (0.061283ms ago) type=EV_REL code=0 value=0
[1450839723.955326] input: Received event time=5432135162000 (0.059584ms ago) type=EV_REL code=0 value=0
[1450839723.966319] input: Received event time=5432146162000 (0.052575ms ago) type=EV_REL code=0 value=0
[1450839723.977320] input: Received event time=5432157162000 (0.053797ms ago) type=EV_REL code=0 value=0
[1450839723.985310] input: Received event time=5432165160000 (0.046363ms ago) type=EV_REL code=0 value=0

However those are the raw input events. By the time libinput has processed and cooked them, there's not enough movement for the cursor to move :(

Daniel van Vugt (vanvugt) wrote :
Download full text (3.4 KiB)

Here are some raw events from evtest while I'm moving the mouse (and the Mir cursor is not moving):

Event: time 1450863452.031628, -------------- SYN_REPORT ------------
Event: time 1450863452.114617, type 2 (EV_REL), code 0 (REL_X), value 1
Event: time 1450863452.114617, -------------- SYN_REPORT ------------
Event: time 1450863452.228608, type 2 (EV_REL), code 0 (REL_X), value 1
Event: time 1450863452.228608, type 2 (EV_REL), code 1 (REL_Y), value 1
Event: time 1450863452.228608, -------------- SYN_REPORT ------------
Event: time 1450863452.370638, type 2 (EV_REL), code 0 (REL_X), value 1
Event: time 1450863452.370638, type 2 (EV_REL), code 1 (REL_Y), value 1
Event: time 1450863452.370638, -------------- SYN_REPORT ------------
Event: time 1450863452.442638, type 2 (EV_REL), code 0 (REL_X), value 1
Event: time 1450863452.442638, -------------- SYN_REPORT ------------
Event: time 1450863452.509675, type 2 (EV_REL), code 0 (REL_X), value 1
Event: time 1450863452.509675, type 2 (EV_REL), code 1 (REL_Y), value 1
Event: time 1450863452.509675, -------------- SYN_REPORT ------------
Event: time 1450863452.564646, type 2 (EV_REL), code 0 (REL_X), value 1
Event: time 1450863452.564646, -------------- SYN_REPORT ------------
Event: time 1450863452.648675, type 2 (EV_REL), code 0 (REL_X), value 1
Event: time 1450863452.648675, -------------- SYN_REPORT ------------
Event: time 1450863452.724683, type 2 (EV_REL), code 0 (REL_X), value 1
Event: time 1450863452.724683, type 2 (EV_REL), code 1 (REL_Y), value 1
Event: time 1450863452.724683, -------------- SYN_REPORT ------------
Event: time 1450863452.821677, type 2 (EV_REL), code 0 (REL_X), value 1
Event: time 1450863452.821677, -------------- SYN_REPORT ------------
Event: time 1450863452.900653, type 2 (EV_REL), code 0 (REL_X), value 1
Event: time 1450863452.900653, type 2 (EV_REL), code 1 (REL_Y), value 1
Event: time 1450863452.900653, -------------- SYN_REPORT ------------
Event: time 1450863452.963628, type 2 (EV_REL), code 0 (REL_X), value 1
Event: time 1450863452.963628, -------------- SYN_REPORT ------------
Event: time 1450863452.997648, type 2 (EV_REL), code 0 (REL_X), value 1
Event: time 1450863452.997648, -------------- SYN_REPORT ------------
Event: time 1450863453.097650, type 2 (EV_REL), code 0 (REL_X), value 1
Event: time 1450863453.097650, type 2 (EV_REL), code 1 (REL_Y), value 1
Event: time 1450863453.097650, -------------- SYN_REPORT ------------
Event: time 1450863453.171617, type 2 (EV_REL), code 0 (REL_X), value 1
Event: time 1450863453.171617, -------------- SYN_REPORT ------------
Event: time 1450863453.295602, type 2 (EV_REL), code 0 (REL_X), value 1
Event: time 1450863453.295602, -------------- SYN_REPORT ------------
Event: time 1450863453.380661, type 2 (EV_REL), code 0 (REL_X), value 1
Event: time 1450863453.380661, type 2 (EV_REL), code 1 (REL_Y), value 1
Event: time 1450863453.380661, -------------- SYN_REPORT ------------
Event: time 1450863453.524653, type 2 (EV_REL), code 0 (REL_X), value 1
Event: time 1450863453.524653, type 2 (EV_REL), code 1 (REL_Y), value 1
Event: time 1450863453.524653, -------------- SYN_REPORT ------------
Event: time 1450863453.612643, type 2 (...

Read more...

no longer affects: mir/0.18
Changed in mir:
milestone: 0.19.0 → 0.20.0
PS Jenkins bot (ps-jenkins) wrote :

Fix committed into lp:mir at revision 3256, scheduled for release in mir, milestone 0.20.0

Changed in mir:
status: Triaged → Fix Committed
Daniel van Vugt (vanvugt) wrote :

That's not a fix that landed, but a handy workaround.

Changed in mir:
status: Fix Committed → Triaged
Changed in mir:
milestone: 0.20.0 → 0.21.0
Changed in mir:
milestone: 0.21.0 → none

I linked another fix which I believe was probably causing the trouble.

Daniel van Vugt (vanvugt) wrote :

Nope, your branch: lp:~andreas-pokorny/mir/fix-1539009-proper-
accumulation-of-batched-events
is not related to this bug. This bug is still happening, and that's not surprising as I'm talking about absolute (not relative) cursor events here.

Failing: mir_demo_server
Working: mir_demo_server --mouse-acceleration=none

That reminds me - Since bug 1539009 is fixed now, can we make the latter (acceleration=none) the default again? That way we could declare bug 1528109 and bug 1524145 both fixed, without having to change the libinput source code.

tags: added: libinput
Changed in mir:
assignee: nobody → Mir development team (mir-team)
milestone: none → 0.22.0
status: Triaged → In Progress
Changed in libinput (Ubuntu):
status: New → Invalid
Changed in mir (Ubuntu):
status: New → Triaged
importance: Undecided → High
Daniel van Vugt (vanvugt) wrote :

Added a qtmir task. I'm guessing it needs the same kind of fix.

summary: - [regression] Cursor mostly does not move at all in response to slow
- mouse movement, but then sometimes jumps
+ [regression] Since libinput was introduced, cursor mostly does not move
+ at all in response to slow mouse movement, but then sometimes jumps
summary: [regression] Since libinput was introduced, cursor mostly does not move
- at all in response to slow mouse movement, but then sometimes jumps
+ at all in response to slow mouse movement
Changed in mir:
assignee: Mir development team (mir-team) → Daniel van Vugt (vanvugt)
summary: - [regression] Since libinput was introduced, cursor mostly does not move
- at all in response to slow mouse movement
+ [regression] Cursor mostly does not move at all in response to slow
+ mouse movement, but then sometimes jumps
Mir CI Bot (mir-ci-bot) wrote :

Fix committed into lp:mir at revision None, scheduled for release in mir, milestone 0.22.0

Changed in mir:
status: In Progress → Fix Committed
Daniel van Vugt (vanvugt) wrote :

Fix committed into lp:mir/0.21 at revision 3427, scheduled for release in Mir 0.21.1

Changed in mir:
status: Fix Committed → Fix Released
Daniel van Vugt (vanvugt) wrote :

Seems the Mir fix is all we needed. Feels much better with Mir 0.22 on krillin rc-proposed.

Changed in qtmir (Ubuntu):
status: New → Invalid
Changed in unity8 (Ubuntu):
status: New → Invalid
Changed in canonical-devices-system-image:
status: New → Fix Committed
tags: added: performance
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package mir - 0.22.1+16.04.20160516.2-0ubuntu2

---------------
mir (0.22.1+16.04.20160516.2-0ubuntu2) yakkety; urgency=medium

  [ Dimitri John Ledkov ]
  * Fix FTBFS error: call of overloaded ‘abs(float)’ is ambiguous, by
    including cmath c++ header.

 -- Łukasz 'sil2100' Zemczak <email address hidden> Thu, 19 May 2016 21:58:43 +0200

Changed in mir (Ubuntu):
status: Triaged → Fix Released
kevin gunn (kgunn72) on 2016-06-01
Changed in canonical-devices-system-image:
status: Fix Committed → Fix Released
Daniel van Vugt (vanvugt) wrote :

Correction: Mir 0.21.1 does not exist yet, but it might in future.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers