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
18
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Canonical System Image
Fix Released
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)
Invalid
Undecided
Unassigned
mir (Ubuntu)
Fix Released
High
Unassigned
qtmir (Ubuntu)
Invalid
Undecided
Unassigned
unity8 (Ubuntu)
Invalid
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

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

Split into two bugs with bug 1528110.

description: updated
Revision history for this message
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
Revision history for this message
Daniel van Vugt (vanvugt) wrote : Re: [regression] Cursor mostly does not move in response to slow mouse movement, and then jumps

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
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Related to bug 1524145 I guess.

Revision history for this message
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
Revision history for this message
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 :(

Revision history for this message
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
Revision history for this message
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
Revision history for this message
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
Revision history for this message
Andreas Pokorny (andreas-pokorny) wrote :

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

Revision history for this message
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
Revision history for this message
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
Revision history for this message
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
Revision history for this message
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
Revision history for this message
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
Revision history for this message
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)
Changed in canonical-devices-system-image:
status: Fix Committed → Fix Released
Revision history for this message
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  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

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