diff options
Diffstat (limited to 'services/surfaceflinger/BufferQueueLayer.cpp')
| -rw-r--r-- | services/surfaceflinger/BufferQueueLayer.cpp | 13 | 
1 files changed, 12 insertions, 1 deletions
diff --git a/services/surfaceflinger/BufferQueueLayer.cpp b/services/surfaceflinger/BufferQueueLayer.cpp index b55e62b88c..bd8eafe683 100644 --- a/services/surfaceflinger/BufferQueueLayer.cpp +++ b/services/surfaceflinger/BufferQueueLayer.cpp @@ -117,6 +117,10 @@ bool BufferQueueLayer::shouldPresentNow(nsecs_t expectedPresentTime) const {               "relative to expectedPresent %" PRId64,               getDebugName(), addedTime, expectedPresentTime); +    if (!isPlausible) { +        mFlinger->mTimeStats->incrementBadDesiredPresent(getSequence()); +    } +      const bool isDue = addedTime < expectedPresentTime;      return isDue || !isPlausible;  } @@ -154,7 +158,14 @@ bool BufferQueueLayer::fenceHasSignaled() const {          // able to be latched. To avoid this, grab this buffer anyway.          return true;      } -    return mQueueItems[0].mFenceTime->getSignalTime() != Fence::SIGNAL_TIME_PENDING; +    const bool fenceSignaled = +            mQueueItems[0].mFenceTime->getSignalTime() != Fence::SIGNAL_TIME_PENDING; +    if (!fenceSignaled) { +        mFlinger->mTimeStats->incrementLatchSkipped(getSequence(), +                                                    TimeStats::LatchSkipReason::LateAcquire); +    } + +    return fenceSignaled;  }  bool BufferQueueLayer::framePresentTimeIsCurrent(nsecs_t expectedPresentTime) const {  |