Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9464b2cc authored by Patrick Williams's avatar Patrick Williams
Browse files

Log out-of-order window infos updates

We're not aware of any condition that would lead this to happen. This
check is to help provide information in case we see future input windows
syncronization issues.

Bug: 279792237
Test: presubmits
Change-Id: I9bdcf34c71c1a741f863feb0881cd09122c7bfb2
parent 01b8e815
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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();
+2 −0
Original line number Diff line number Diff line
@@ -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.