Loading services/surfaceflinger/Scheduler/DispSyncSource.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -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 { Loading services/surfaceflinger/tests/unittests/DispSyncSourceTest.cpp +5 −6 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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 Loading Loading
services/surfaceflinger/Scheduler/DispSyncSource.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -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 { Loading
services/surfaceflinger/tests/unittests/DispSyncSourceTest.cpp +5 −6 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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 Loading