From 1a9716389b6e2cd44c388e8b29291889c702b86b Mon Sep 17 00:00:00 2001 From: Adithya Srinivasan Date: Fri, 26 Feb 2021 23:10:29 +0000 Subject: Trace DisplayFrame present time as the slice end time To find the present time of a frame, we'd have to go to hw vsync track and check for the fence signal time. To make things easier, this change traces the DisplayFrame's present time as the slice's end time. This also makes it inline with the expected track which uses present time (end and present are same for sf predictions). Bug: 180423820 Test: libsurfaceflinger_unittest Change-Id: I2359417337eb08cde0adb881101087fa37d4e6f2 --- services/surfaceflinger/FrameTimeline/FrameTimeline.cpp | 2 +- services/surfaceflinger/tests/unittests/FrameTimelineTest.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/services/surfaceflinger/FrameTimeline/FrameTimeline.cpp b/services/surfaceflinger/FrameTimeline/FrameTimeline.cpp index 75229e988d..75158729bc 100644 --- a/services/surfaceflinger/FrameTimeline/FrameTimeline.cpp +++ b/services/surfaceflinger/FrameTimeline/FrameTimeline.cpp @@ -974,7 +974,7 @@ void FrameTimeline::DisplayFrame::traceActuals(pid_t surfaceFlingerPid) const { FrameTimelineDataSource::Trace([&](FrameTimelineDataSource::TraceContext ctx) { auto packet = ctx.NewTracePacket(); packet->set_timestamp_clock_id(perfetto::protos::pbzero::BUILTIN_CLOCK_MONOTONIC); - packet->set_timestamp(static_cast(mSurfaceFlingerActuals.endTime)); + packet->set_timestamp(static_cast(mSurfaceFlingerActuals.presentTime)); auto* event = packet->set_frame_timeline_event(); auto* actualDisplayFrameEndEvent = event->set_frame_end(); diff --git a/services/surfaceflinger/tests/unittests/FrameTimelineTest.cpp b/services/surfaceflinger/tests/unittests/FrameTimelineTest.cpp index 7e6141eaaa..6150b22609 100644 --- a/services/surfaceflinger/tests/unittests/FrameTimelineTest.cpp +++ b/services/surfaceflinger/tests/unittests/FrameTimelineTest.cpp @@ -915,7 +915,7 @@ TEST_F(FrameTimelineTest, traceDisplayFrame_emitsValidTracePacket) { // Packet - 3 : FrameEnd (ActualDisplayFrame) const auto& packet3 = packets[3]; ASSERT_TRUE(packet3.has_timestamp()); - EXPECT_EQ(packet3.timestamp(), 26u); + EXPECT_EQ(packet3.timestamp(), 31u); ASSERT_TRUE(packet3.has_frame_timeline_event()); const auto& event3 = packet3.frame_timeline_event(); @@ -969,7 +969,7 @@ TEST_F(FrameTimelineTest, traceDisplayFrame_predictionExpiredDoesNotTraceExpecte // Packet - 1 : FrameEnd (ActualDisplayFrame) const auto& packet1 = packets[1]; ASSERT_TRUE(packet1.has_timestamp()); - EXPECT_EQ(packet1.timestamp(), 26u); + EXPECT_EQ(packet1.timestamp(), 31u); ASSERT_TRUE(packet1.has_frame_timeline_event()); const auto& event1 = packet1.frame_timeline_event(); -- cgit v1.2.3-59-g8ed1b