Loading services/surfaceflinger/FrameTimeline/FrameTimeline.cpp +5 −1 Original line number Diff line number Diff line Loading @@ -359,8 +359,12 @@ void SurfaceFrame::setActualQueueTime(nsecs_t actualQueueTime) { void SurfaceFrame::setAcquireFenceTime(nsecs_t acquireFenceTime) { std::scoped_lock lock(mMutex); if (CC_UNLIKELY(acquireFenceTime == Fence::SIGNAL_TIME_PENDING)) { mActuals.endTime = mActualQueueTime; } else { mActuals.endTime = std::max(acquireFenceTime, mActualQueueTime); } } void SurfaceFrame::setDropTime(nsecs_t dropTime) { std::scoped_lock lock(mMutex); Loading services/surfaceflinger/tests/unittests/FrameTimelineTest.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -479,6 +479,16 @@ TEST_F(FrameTimelineTest, surfaceFrameEndTimeAcquireFenceAfterQueue) { EXPECT_EQ(surfaceFrame->getActuals().endTime, 456); } TEST_F(FrameTimelineTest, surfaceFrameEndTimeAcquireFenceUnsignaled) { auto surfaceFrame = mFrameTimeline->createSurfaceFrameForToken({}, sPidOne, 0, sLayerIdOne, "acquireFenceAfterQueue", "acquireFenceAfterQueue", /*isBuffer*/ true, sGameMode); surfaceFrame->setActualQueueTime(123); surfaceFrame->setAcquireFenceTime(Fence::SIGNAL_TIME_PENDING); EXPECT_EQ(surfaceFrame->getActuals().endTime, 123); } TEST_F(FrameTimelineTest, surfaceFrameEndTimeAcquireFenceBeforeQueue) { auto surfaceFrame = mFrameTimeline->createSurfaceFrameForToken({}, sPidOne, 0, sLayerIdOne, "acquireFenceAfterQueue", Loading Loading
services/surfaceflinger/FrameTimeline/FrameTimeline.cpp +5 −1 Original line number Diff line number Diff line Loading @@ -359,8 +359,12 @@ void SurfaceFrame::setActualQueueTime(nsecs_t actualQueueTime) { void SurfaceFrame::setAcquireFenceTime(nsecs_t acquireFenceTime) { std::scoped_lock lock(mMutex); if (CC_UNLIKELY(acquireFenceTime == Fence::SIGNAL_TIME_PENDING)) { mActuals.endTime = mActualQueueTime; } else { mActuals.endTime = std::max(acquireFenceTime, mActualQueueTime); } } void SurfaceFrame::setDropTime(nsecs_t dropTime) { std::scoped_lock lock(mMutex); Loading
services/surfaceflinger/tests/unittests/FrameTimelineTest.cpp +10 −0 Original line number Diff line number Diff line Loading @@ -479,6 +479,16 @@ TEST_F(FrameTimelineTest, surfaceFrameEndTimeAcquireFenceAfterQueue) { EXPECT_EQ(surfaceFrame->getActuals().endTime, 456); } TEST_F(FrameTimelineTest, surfaceFrameEndTimeAcquireFenceUnsignaled) { auto surfaceFrame = mFrameTimeline->createSurfaceFrameForToken({}, sPidOne, 0, sLayerIdOne, "acquireFenceAfterQueue", "acquireFenceAfterQueue", /*isBuffer*/ true, sGameMode); surfaceFrame->setActualQueueTime(123); surfaceFrame->setAcquireFenceTime(Fence::SIGNAL_TIME_PENDING); EXPECT_EQ(surfaceFrame->getActuals().endTime, 123); } TEST_F(FrameTimelineTest, surfaceFrameEndTimeAcquireFenceBeforeQueue) { auto surfaceFrame = mFrameTimeline->createSurfaceFrameForToken({}, sPidOne, 0, sLayerIdOne, "acquireFenceAfterQueue", Loading