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

Commit 997aaf22 authored by Rachel Lee's avatar Rachel Lee Committed by Android (Google) Code Review
Browse files

Merge "Fix getLatestVsyncEventData deadline."

parents 3a214d74 0679cf20
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -188,10 +188,10 @@ void DispSyncSource::onVsyncCallback(nsecs_t vsyncTime, nsecs_t targetWakeupTime

VSyncSource::VSyncData DispSyncSource::getLatestVSyncData() const {
    std::lock_guard lock(mVsyncMutex);
    nsecs_t expectedPresentTime = mVSyncTracker.nextAnticipatedVSyncTimeFrom(
    nsecs_t expectedPresentationTime = mVSyncTracker.nextAnticipatedVSyncTimeFrom(
            systemTime() + mWorkDuration.get().count() + mReadyDuration.count());
    nsecs_t deadline = expectedPresentTime - mWorkDuration.get().count() - mReadyDuration.count();
    return {expectedPresentTime, deadline};
    nsecs_t deadline = expectedPresentationTime - mReadyDuration.count();
    return {expectedPresentationTime, deadline};
}

void DispSyncSource::dump(std::string& result) const {
+5 −6
Original line number Diff line number Diff line
@@ -292,9 +292,10 @@ TEST_F(DispSyncSourceTest, waitForCallbacksWithDurationChange) {

TEST_F(DispSyncSourceTest, getLatestVsyncData) {
    const nsecs_t now = systemTime();
    const nsecs_t vsyncInternalDuration = mWorkDuration.count() + mReadyDuration.count();
    const nsecs_t expectedPresentationTime =
            now + mWorkDuration.count() + mReadyDuration.count() + 1;
    EXPECT_CALL(*mVSyncTracker, nextAnticipatedVSyncTimeFrom(_))
            .WillOnce(Return(now + vsyncInternalDuration + 1));
            .WillOnce(Return(expectedPresentationTime));
    {
        InSequence seq;
        EXPECT_CALL(*mVSyncDispatch, registerCallback(_, mName)).Times(1);
@@ -306,10 +307,8 @@ TEST_F(DispSyncSourceTest, getLatestVsyncData) {
    EXPECT_TRUE(mDispSyncSource);

    const auto vsyncData = mDispSyncSource->getLatestVSyncData();
    ASSERT_GT(vsyncData.deadlineTimestamp, now);
    ASSERT_GT(vsyncData.expectedPresentationTime, vsyncData.deadlineTimestamp);
    EXPECT_EQ(vsyncData.deadlineTimestamp,
              vsyncData.expectedPresentationTime - vsyncInternalDuration);
    ASSERT_EQ(vsyncData.expectedPresentationTime, expectedPresentationTime);
    EXPECT_EQ(vsyncData.deadlineTimestamp, expectedPresentationTime - mReadyDuration.count());
}

} // namespace