diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2023-06-01 08:52:42 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2023-06-01 08:52:42 +0000 |
commit | d46685714cfc1e09807ced0bb3c2d27f36950021 (patch) | |
tree | 4406758a2cc0455b404f8413126ffa20523fe68c | |
parent | e2d955548639f22de77e7acb60395790da5469b7 (diff) | |
parent | 9464b2cc5c9789eacd0b14a3754660df28a89e7f (diff) | |
download | native-d46685714cfc1e09807ced0bb3c2d27f36950021.tar.gz |
Merge "Log out-of-order window infos updates" into udc-dev
-rw-r--r-- | services/inputflinger/dispatcher/InputDispatcher.cpp | 7 | ||||
-rw-r--r-- | services/inputflinger/dispatcher/InputDispatcher.h | 2 |
2 files changed, 9 insertions, 0 deletions
diff --git a/services/inputflinger/dispatcher/InputDispatcher.cpp b/services/inputflinger/dispatcher/InputDispatcher.cpp index 0cc7cfbcc8..fbbb38835a 100644 --- a/services/inputflinger/dispatcher/InputDispatcher.cpp +++ b/services/inputflinger/dispatcher/InputDispatcher.cpp @@ -6700,6 +6700,13 @@ void InputDispatcher::onWindowInfosChanged(const gui::WindowInfosUpdate& update) for (const auto& [displayId, handles] : handlesPerDisplay) { setInputWindowsLocked(handles, displayId); } + + if (update.vsyncId < mWindowInfosVsyncId) { + ALOGE("Received out of order window infos update. Last update vsync id: %" PRId64 + ", current update vsync id: %" PRId64, + mWindowInfosVsyncId, update.vsyncId); + } + mWindowInfosVsyncId = update.vsyncId; } // Wake up poll loop since it may need to make new input dispatching choices. mLooper->wake(); diff --git a/services/inputflinger/dispatcher/InputDispatcher.h b/services/inputflinger/dispatcher/InputDispatcher.h index 8ca01b7a09..6b22f2f24f 100644 --- a/services/inputflinger/dispatcher/InputDispatcher.h +++ b/services/inputflinger/dispatcher/InputDispatcher.h @@ -204,6 +204,8 @@ private: const IdGenerator mIdGenerator; + int64_t mWindowInfosVsyncId GUARDED_BY(mLock); + // With each iteration, InputDispatcher nominally processes one queued event, // a timeout, or a response from an input consumer. // This method should only be called on the input dispatcher's own thread. |