@@ -31,6 +31,7 @@ FrameTarget::FrameTarget(const std::string& displayLabel)
3131
3232std::pair<bool /* wouldBackpressure */ , FrameTarget::PresentFence>
3333FrameTarget::expectedSignaledPresentFence (Period vsyncPeriod, Period minFramePeriod) const {
34+ SFTRACE_CALL ();
3435 if (!FlagManager::getInstance ().allow_n_vsyncs_in_targeter ()) {
3536 const size_t i = static_cast <size_t >(targetsVsyncsAhead<2 >(minFramePeriod));
3637 return {true , mPresentFencesLegacy [i]};
@@ -40,17 +41,28 @@ FrameTarget::expectedSignaledPresentFence(Period vsyncPeriod, Period minFramePer
4041 auto expectedPresentTime = mExpectedPresentTime ;
4142 for (size_t i = mPresentFences .size (); i != 0 ; --i) {
4243 const auto & fence = mPresentFences [i - 1 ];
44+ SFTRACE_FORMAT_INSTANT (" fence at idx: %zu expectedPresentTime in %.2f" , i - 1 ,
45+ ticks<std::milli, float >(fence.expectedPresentTime -
46+ TimePoint::now ()));
4347
4448 if (fence.expectedPresentTime + minFramePeriod < expectedPresentTime - vsyncPeriod / 2 ) {
49+ SFTRACE_FORMAT_INSTANT (" would not backpressure" );
4550 wouldBackpressure = false ;
4651 }
4752
4853 if (fence.expectedPresentTime <= mFrameBeginTime ) {
54+ SFTRACE_FORMAT_INSTANT (" fence at idx: %zu is %.2f before frame begin "
55+ " (wouldBackpressure=%s)" ,
56+ i - 1 ,
57+ ticks<std::milli, float >(mFrameBeginTime -
58+ fence.expectedPresentTime ),
59+ wouldBackpressure ? " true" : " false" );
4960 return {wouldBackpressure, fence};
5061 }
5162
5263 expectedPresentTime = fence.expectedPresentTime ;
5364 }
65+ SFTRACE_FORMAT_INSTANT (" No fence found" );
5466 return {wouldBackpressure, PresentFence{}};
5567}
5668
@@ -154,6 +166,12 @@ void FrameTargeter::beginFrame(const BeginFrameArgs& args, const IVsyncSource& v
154166 if (pastPresentTime < 0 ) return false ;
155167 mLastSignaledFrameTime = {.signalTime = TimePoint::fromNs (pastPresentTime),
156168 .expectedPresentTime = fence.expectedPresentTime };
169+ SFTRACE_FORMAT_INSTANT (" LastSignaledFrameTime expectedPresentTime %.2f ago, signalTime "
170+ " %.2f ago" ,
171+ ticks<std::milli, float >(mLastSignaledFrameTime .expectedPresentTime -
172+ TimePoint::now ()),
173+ ticks<std::milli, float >(mLastSignaledFrameTime .signalTime -
174+ TimePoint::now ()));
157175 const nsecs_t frameMissedSlop = vsyncPeriod.ns () / 2 ;
158176 return lastScheduledPresentTime.ns () < pastPresentTime - frameMissedSlop;
159177 }();
0 commit comments