[regression] Mouse speed in Unity8 is much lower than elsewhere (to the point of useless)

Bug #1517133 reported by Albert Astals Cid
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Mir
Fix Released
High
Andreas Pokorny
QtMir
Won't Fix
High
Unassigned
mir (Ubuntu)
Won't Fix
High
Unassigned
qtmir (Ubuntu)
Won't Fix
High
Unassigned
unity8 (Ubuntu)
Won't Fix
High
Unassigned

Bug Description

Running unity8 as a session on the desktop.

The mouse is so "slow" (i.e a movement in reality moves it very few pixels on screen) that i can't really use it since i need to lift it and restart the movement a few times if i want to go to the other side of the screen.

Related branches

Revision history for this message
Daniel d'Andrada (dandrader) wrote :

The fix for this is having mir including mouse acceleration and sensitivity also on its relative mouse axes, which is what qtmir/unity8 uses to move the QML mouse.

no longer affects: unity8 (Ubuntu)
Revision history for this message
Daniel d'Andrada (dandrader) wrote :

IINM this will happen once the input backend moves to libinput

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

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

Changed in mir:
status: New → Fix Committed
Changed in mir:
milestone: none → 0.18.0
tags: added: cursor input
Changed in mir:
assignee: nobody → Andreas Pokorny (andreas-pokorny)
importance: Undecided → Medium
summary: - mouse speed is much lower than elsewhere (to the point of useless)
+ Mouse speed in Unity8 is much lower than elsewhere (to the point of
+ useless)
Changed in mir:
importance: Medium → High
Revision history for this message
Launchpad Janitor (janitor) wrote : Re: Mouse speed in Unity8 is much lower than elsewhere (to the point of useless)

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in mir (Ubuntu):
status: New → Confirmed
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Hmm, the mouse moving faster in Mir 0.18.0 is a bug (see bug 1524145).

So I suggest you should aim to fix this bug in Unity8/QtMir. Especially since it only affects Unity8.

Changed in unity8 (Ubuntu):
status: New → Confirmed
importance: Undecided → High
Changed in qtmir (Ubuntu):
status: New → Confirmed
importance: Undecided → High
summary: - Mouse speed in Unity8 is much lower than elsewhere (to the point of
- useless)
+ [regression] Mouse speed in Unity8 is much lower than elsewhere (to the
+ point of useless)
tags: added: regression
Changed in mir:
status: Fix Committed → Opinion
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Note Mir did not change to cause this bug. Something other than Mir did.

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

Actually, regardless of whether we land Mir fixes for bug 1524145 and bug 1522295, the Unity8 mouse speed is still going to be unusable.

Right now (Mir 0.17 installed on xenial) you're getting 1:1 device kernel motion data. So Unity8 should be able to deal with that much better than it is and not require such a huge effort to move the mouse around.

So this is entirely a Unity8 bug. Unity8 should ensure as a sane default that it is moving the cursor by about 1px when the motion event gives a dx==1. But right now it seems to be a long way from that. Other Mir shells don't have a problem.

Changed in mir:
status: Opinion → Invalid
milestone: 0.18.0 → none
Changed in mir (Ubuntu):
status: Confirmed → Invalid
Changed in qtmir:
status: New → Confirmed
importance: Undecided → High
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Furthermore, when a configuration GUI is available, many users will configure and want mouse accuracy to be exactly what it is right now in Mir 0.17. So please make sure Unity8 works with that and does not rely on the spuriously large acceleration that libinput introduces.

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

Put another way; even if you disagree with me and prefer the the faster mouse in Mir 0.18, you're still going to find in some cases that's not enough to counter-act the slow cursor problem in Unity8. So Unity8 still needs fixing.

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

Additionally, balancing a slowdown with an acceleration where accuracy has already been lost due to acceleration (bug 1522295) makes for a sub-optimal user experience. The user should have the benefit of being able to use the full precision of their device rather than having some of it lost in software.

Changed in mir:
status: Invalid → Fix Committed
Revision history for this message
Andreas Pokorny (andreas-pokorny) wrote :

You can see this bug from various perspectives. For common mice mouse, movement of the cursor on a high dpi screen is just slow. But since you still need accuracy you cannot just scale the movement. To allow exact cursor placement, movement dependent cceleration is the proper solution for this problem.

The fact that the android input stack did not offer acceleration was not a decision we made for versions prior to 0.18, but rather a bug in the velocity tracker for some reason it queried and tracked a non existent touch id. Fixing that required refactoring our tests to not rely on that bug. Which happened in the course of this year. In the end we just switched to libinuput.

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

I agree abolishing acceleration is not a final answer, and there will be configurations where it is needed.

However, the acceleration introduced in Mir 0.18 is insufficient and inappropriate to address this bug. The slow-down recently introduced in Untiy8 is too pronounced, and needs to be fixed in Unity8.

Changed in mir:
milestone: none → 0.19.0
milestone: 0.19.0 → 0.18.0
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Wow. Even more weird, it seems the cursor moves more slowly the faster you move the mouse. For fastest cursor movement in Unity8 you have to move the mouse more slowly.

Feels like pointer acceleration done backwards. Although the underlying Mir version is still 0.17 so nothing's changed there. It's only Unity8 that's a problem.

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

Correction: What it really feels like is that Unity8 has hardcoded dx and dy to be only one of {0,-1,+1}. So it feels like it's ignoring the motion delta (distance and velocity) information provided by Mir.

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

So comment #1 is starting to make sense now. Although I won't discount #14 just yet. Need to wait and retest with Unity8 when Mir 0.18 hits xenial.

Changed in mir (Ubuntu):
status: Invalid → New
importance: Undecided → High
Changed in qtmir:
status: Confirmed → Incomplete
Changed in qtmir (Ubuntu):
status: Confirmed → Incomplete
Changed in unity8 (Ubuntu):
status: Confirmed → Incomplete
Revision history for this message
kevin gunn (kgunn72) wrote :

also worthy of pointing out in this topic is this idea from tvoss
https://code.launchpad.net/~thomas-voss/mir/test_an_idea/+merge/280353
currently built here
https://requests.ci-train.ubuntu.com/#/ticket/779
just need to install silo and add
initctl set-env --global MIR_CLIENT_INPUT_RATE=0
to /usr/share/upstart/sessions/unity8.conf then reboot of course

Secondarily, from alberta adding
initctl set-env --global QML_NO_TOUCH_COMPRESSION=1
also results in snappier touch input reaction

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

tvoss' branch is off topic, and undesirable as mentioned in the MP.

Also, I already added QML_NO_TOUCH_COMPRESSION=1 to the whole ubuntu touch image a couple of months ago. Not sure why it would be missing anywhere now...

Kevin DuBois (kdub)
Changed in mir:
status: Fix Committed → Fix Released
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

This bug was never fixed. I rediscovered it yesterday and now logged as --> bug 1539009

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

Won't Fix. Discussion moved to bug 1539009 instead.

Changed in qtmir:
status: Incomplete → Won't Fix
Changed in mir (Ubuntu):
status: New → Won't Fix
Changed in qtmir (Ubuntu):
status: Incomplete → Won't Fix
Changed in unity8 (Ubuntu):
status: Incomplete → Won't Fix
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.