[regression] Motion event smoothness lost with the introduction of libinput
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
| Mir |
Triaged
|
Medium
|
Unassigned | |
| mir (Ubuntu) |
Medium
|
Unassigned |
Bug Description
[regression] Motion event smoothness lost with the introduction of libinput.
Using a mouse and mir_demo_
This issue was first reported in:
https:/
Related branches
- PS Jenkins bot (community): Approve (continuous-integration) on 2015-12-14
- Andreas Pokorny (community): Disapprove on 2015-12-14
- Daniel d'Andrada (community): Needs Information on 2015-12-14
-
Diff: 71 lines (+18/-2)4 files modifiedsrc/platforms/evdev/libinput_device.cpp (+2/-2)
tests/include/mir/test/doubles/mock_libinput.h (+2/-0)
tests/mir_test_doubles/mock_libinput.cpp (+10/-0)
tests/unit-tests/input/evdev/test_libinput_device.cpp (+4/-0)
- PS Jenkins bot (community): Approve (continuous-integration) on 2016-01-21
- Daniel van Vugt: Approve on 2016-01-20
- Mir CI Bot: Approve (continuous-integration) on 2016-01-19
- Kevin DuBois (community): Approve on 2016-01-13
-
Diff: 454 lines (+118/-45)11 files modifiedexamples/server_example_input_device_config.cpp (+30/-11)
examples/server_example_input_device_config.h (+2/-8)
include/client/mir_toolkit/mir_input_device.h (+15/-0)
include/platform/mir/input/pointer_settings.h (+4/-0)
include/server/mir/input/pointer_configuration.h (+10/-4)
src/platforms/evdev/libinput_device.cpp (+16/-9)
src/server/input/default_device.cpp (+4/-2)
tests/include/mir/test/doubles/mock_libinput.h (+2/-0)
tests/mir_test_doubles/mock_libinput.cpp (+12/-0)
tests/mir_test_framework/fake_input_device_impl.cpp (+7/-4)
tests/unit-tests/input/evdev/test_libinput_device.cpp (+16/-7)
tags: | added: pointer-events |
Changed in mir: | |
assignee: | nobody → Daniel van Vugt (vanvugt) |
status: | Triaged → In Progress |
Changed in mir: | |
status: | In Progress → Incomplete |
Andreas Pokorny (andreas-pokorny) wrote : | #2 |
add more information the problem you describe might be caused by specific settings or input devices. Or honestly on second thought the description sounds like a natural consequence of drawing an accelerated object in constant time intervals. Due to apparent change in velocity the resulting dots will have a varying.
btw since resampling does not improve mouse movement but instead increases latency, this MP ensures InputTransport knows that the coordinates originate from a pointing device: lp:~andreas-pokorny/mir/cleanup-event-input-transport-conversion
Daniel van Vugt (vanvugt) wrote : | #3 |
Description updated with more detail. I'm only missing before and after screenshots, but I'm sure you don't need that.
Also worth noting the workaround for a related bug does not help with this one, it seems...
https:/
description: | updated |
Changed in mir: | |
status: | Incomplete → Triaged |
importance: | High → Medium |
Daniel van Vugt (vanvugt) wrote : | #4 |
I initially thought the same; that an erratic curve sounds like a natural consequence of acceleration.
However I now think it really is just a consequence of the acceleration (2nd derivative of position) being non-continuous. Which you can see in these graphs here:
http://
I suspect if libinput used a smooth acceleration curve then there would not be a problem.
Changed in mir: | |
milestone: | 0.19.0 → none |
assignee: | Daniel van Vugt (vanvugt) → nobody |
PS Jenkins bot (ps-jenkins) wrote : | #5 |
Fix committed into lp:mir at revision None, scheduled for release in mir, milestone 0.20.0
Changed in mir: | |
status: | Triaged → Fix Committed |
Daniel van Vugt (vanvugt) wrote : | #6 |
That's not a fix that landed, but a handy workaround.
Changed in mir: | |
status: | Fix Committed → Triaged |
tags: | added: libinput |
Michał Sawicz (saviq) wrote : | #8 |
Syncing task from Mir.
Changed in mir (Ubuntu): | |
importance: | Undecided → Medium |
status: | New → Triaged |
It's possible that simply disabling libinput's acceleration logic will solve this.