diff options
Diffstat (limited to 'services/surfaceflinger/SurfaceFlinger.cpp')
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 6967f69876..63201b080c 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -1994,11 +1994,6 @@ void SurfaceFlinger::onMessageRefresh() { mScheduler->onDisplayRefreshed(presentTime); - // Set presentation information before calling postComposition, such that jank information from - // this' frame classification is already available when sending jank info to clients. - mFrameTimeline->setSfPresent(systemTime(), - std::make_shared<FenceTime>(mPreviousPresentFences[0])); - postFrame(); postComposition(); @@ -2120,11 +2115,6 @@ void SurfaceFlinger::postComposition() { ATRACE_CALL(); ALOGV("postComposition"); - nsecs_t dequeueReadyTime = systemTime(); - for (const auto& layer : mLayersWithQueuedFrames) { - layer->releasePendingBuffer(dequeueReadyTime); - } - const auto* display = ON_MAIN_THREAD(getDefaultDisplayDeviceLocked()).get(); getBE().mGlCompositionDoneTimeline.updateSignalTimes(); @@ -2146,6 +2136,17 @@ void SurfaceFlinger::postComposition() { auto presentFenceTime = std::make_shared<FenceTime>(mPreviousPresentFences[0]); getBE().mDisplayTimeline.push(presentFenceTime); + // Set presentation information before calling Layer::releasePendingBuffer, such that jank + // information from previous' frame classification is already available when sending jank info + // to clients, so they get jank classification as early as possible. + mFrameTimeline->setSfPresent(systemTime(), + std::make_shared<FenceTime>(mPreviousPresentFences[0])); + + nsecs_t dequeueReadyTime = systemTime(); + for (const auto& layer : mLayersWithQueuedFrames) { + layer->releasePendingBuffer(dequeueReadyTime); + } + const DisplayStatInfo stats = mScheduler->getDisplayStatInfo(systemTime()); // We use the CompositionEngine::getLastFrameRefreshTimestamp() which might |