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

Commit b5a417f6 authored by Rachel Lee's avatar Rachel Lee Committed by Automerger Merge Worker
Browse files

Merge "ResyncCallback in getLatestVsyncEventData." into tm-dev am: 474079d8

parents f56fbbf1 474079d8
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -346,6 +346,12 @@ void EventThread::requestNextVsync(const sp<EventThreadConnection>& connection)

VsyncEventData EventThread::getLatestVsyncEventData(
        const sp<EventThreadConnection>& connection) const {
    // Resync so that the vsync is accurate with hardware. getLatestVsyncEventData is an alternate
    // way to get vsync data (instead of posting callbacks to Choreographer).
    if (connection->resyncCallback) {
        connection->resyncCallback();
    }

    VsyncEventData vsyncEventData;
    nsecs_t frameInterval = mGetVsyncPeriodFunction(connection->mOwnerUid);
    vsyncEventData.frameInterval = frameInterval;
+4 −0
Original line number Diff line number Diff line
@@ -415,6 +415,10 @@ TEST_F(EventThreadTest, getLatestVsyncEventData) {
    EXPECT_CALL(*mVSyncSource, getLatestVSyncData()).WillOnce(Return(preferredData));

    VsyncEventData vsyncEventData = mThread->getLatestVsyncEventData(mConnection);

    // Check EventThread immediately requested a resync.
    EXPECT_TRUE(mResyncCallRecorder.waitForCall().has_value());

    EXPECT_GT(vsyncEventData.frameTimelines[0].deadlineTimestamp, now)
            << "Deadline timestamp should be greater than frame time";
    for (size_t i = 0; i < VsyncEventData::kFrameTimelinesLength; i++) {