Merge lp:~andreas-pokorny/mir/use-monotonic-clock-for-input into lp:mir
Status: | Merged |
---|---|
Approved by: | Andreas Pokorny |
Approved revision: | no longer in the source branch. |
Merged at revision: | 3104 |
Proposed branch: | lp:~andreas-pokorny/mir/use-monotonic-clock-for-input |
Merge into: | lp:mir |
Diff against target: |
162 lines (+28/-48) 5 files modified
3rd_party/android-input/android/frameworks/native/libs/utils/Timers.cpp (+4/-30) src/common/logging/input_timestamp.cpp (+6/-12) src/platforms/evdev/libinput_ptr.cpp (+13/-1) src/server/input/key_repeat_dispatcher.cpp (+1/-1) tests/mir_test_framework/fake_input_device_impl.cpp (+4/-4) |
To merge this branch: | bzr merge lp:~andreas-pokorny/mir/use-monotonic-clock-for-input |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
PS Jenkins bot (community) | continuous-integration | Approve | |
Alan Griffiths | Approve | ||
Chris Halse Rogers | Approve | ||
Review via email: mp+277635@code.launchpad.net |
Commit message
Switch to monotonic clock for everything input related
sytemTime from android-input is used by client and server within the input receiver to calculate an assumed frame time, and to attach timestamps to input events. The evdev platform now ensures with EVIOCSCLOCKID(
KeyRepeatDispatcher used to emit timer events from system_clock which uses CLOCK_REALTIME. Similar reports and fake event devices required adaptation too.
Before this change CLOCK_REALTIME was used because the default build configuration of android-input refrained from using any other clock (c.f. HAVE_POSIX_CLOCKS). Hence the input event timestamps were replaced by CLOCK_REALTIME timestamps. And everything else had to follow that setup.
Description of the change
As opposed to the previous attempt, this MP does not introduce the idea of a Clock passed to platforms. Instead it relies on the underlying system to come up with good timestamps. Especially for evdev events the timestamps from the device are more accurate than the ones generated when the system compositor gets to interpret the results from libinput.
So in the end this MP just changes the already spread time stamp related bits to use the monotonic clock.
FAILED: Continuous integration, rev:3104 jenkins. qa.ubuntu. com/job/ mir-ci/ 5558/ jenkins. qa.ubuntu. com/job/ mir-android- vivid-i386- build/4885 jenkins. qa.ubuntu. com/job/ mir-clang- vivid-amd64- build/3792/ console jenkins. qa.ubuntu. com/job/ mir-mediumtests -vivid- touch/4828/ console jenkins. qa.ubuntu. com/job/ mir-mediumtests -wily-touch/ 785/console jenkins. qa.ubuntu. com/job/ mir-wily- amd64-ci/ 1712 jenkins. qa.ubuntu. com/job/ mir-wily- amd64-ci/ 1712/artifact/ work/output/ *zip*/output. zip jenkins. qa.ubuntu. com/job/ mir-wily- i386-ci/ 785/console jenkins. qa.ubuntu. com/job/ mir-mediumtests -builder- vivid-armhf/ 4829 jenkins. qa.ubuntu. com/job/ mir-mediumtests -builder- vivid-armhf/ 4829/artifact/ work/output/ *zip*/output. zip jenkins. qa.ubuntu. com/job/ mir-mediumtests -runner- touch/7408/ console s-jenkins. ubuntu- ci:8080/ job/touch- flash-device/ 25159 jenkins. qa.ubuntu. com/job/ mir-mediumtests -builder- wily-armhf/ 786/console
http://
Executed test runs:
SUCCESS: http://
FAILURE: http://
FAILURE: http://
FAILURE: http://
SUCCESS: http://
deb: http://
None: http://
SUCCESS: http://
deb: http://
FAILURE: http://
SUCCESS: http://
FAILURE: http://
Click here to trigger a rebuild: s-jenkins. ubuntu- ci:8080/ job/mir- ci/5558/ rebuild
http://