Loading services/surfaceflinger/BufferLayer.cpp +28 −26 Original line number Original line Diff line number Diff line Loading @@ -421,8 +421,10 @@ bool BufferLayer::onPostComposition(const DisplayDevice* display, mFrameTracker.setFrameReadyTime(desiredPresentTime); mFrameTracker.setFrameReadyTime(desiredPresentTime); } } if (display) { const Fps refreshRate = display->refreshRateConfigs().getCurrentRefreshRate().getFps(); const Fps refreshRate = display->refreshRateConfigs().getCurrentRefreshRate().getFps(); const std::optional<Fps> renderRate = mFlinger->mScheduler->getFrameRateOverride(getOwnerUid()); const std::optional<Fps> renderRate = mFlinger->mScheduler->getFrameRateOverride(getOwnerUid()); if (presentFence->isValid()) { if (presentFence->isValid()) { mFlinger->mTimeStats->setPresentFence(layerId, mCurrentFrameNumber, presentFence, mFlinger->mTimeStats->setPresentFence(layerId, mCurrentFrameNumber, presentFence, refreshRate, renderRate, refreshRate, renderRate, Loading @@ -430,10 +432,9 @@ bool BufferLayer::onPostComposition(const DisplayDevice* display, mDrawingState.frameRate), mDrawingState.frameRate), getGameMode()); getGameMode()); mFlinger->mFrameTracer->traceFence(layerId, getCurrentBufferId(), mCurrentFrameNumber, mFlinger->mFrameTracer->traceFence(layerId, getCurrentBufferId(), mCurrentFrameNumber, presentFence, FrameTracer::FrameEvent::PRESENT_FENCE); presentFence, FrameTracer::FrameEvent::PRESENT_FENCE); mFrameTracker.setActualPresentFence(std::shared_ptr<FenceTime>(presentFence)); mFrameTracker.setActualPresentFence(std::shared_ptr<FenceTime>(presentFence)); } else if (!display) { // Do nothing. } else if (const auto displayId = PhysicalDisplayId::tryCast(display->getId()); } else if (const auto displayId = PhysicalDisplayId::tryCast(display->getId()); displayId && mFlinger->getHwComposer().isConnected(*displayId)) { displayId && mFlinger->getHwComposer().isConnected(*displayId)) { // The HWC doesn't support present fences, so use the refresh // The HWC doesn't support present fences, so use the refresh Loading @@ -444,11 +445,12 @@ bool BufferLayer::onPostComposition(const DisplayDevice* display, frameRateToSetFrameRateVotePayload( frameRateToSetFrameRateVotePayload( mDrawingState.frameRate), mDrawingState.frameRate), getGameMode()); getGameMode()); mFlinger->mFrameTracer->traceTimestamp(layerId, getCurrentBufferId(), mCurrentFrameNumber, mFlinger->mFrameTracer->traceTimestamp(layerId, getCurrentBufferId(), actualPresentTime, mCurrentFrameNumber, actualPresentTime, FrameTracer::FrameEvent::PRESENT_FENCE); FrameTracer::FrameEvent::PRESENT_FENCE); mFrameTracker.setActualPresentTime(actualPresentTime); mFrameTracker.setActualPresentTime(actualPresentTime); } } } mFrameTracker.advanceFrame(); mFrameTracker.advanceFrame(); mBufferInfo.mFrameLatencyNeeded = false; mBufferInfo.mFrameLatencyNeeded = false; Loading Loading
services/surfaceflinger/BufferLayer.cpp +28 −26 Original line number Original line Diff line number Diff line Loading @@ -421,8 +421,10 @@ bool BufferLayer::onPostComposition(const DisplayDevice* display, mFrameTracker.setFrameReadyTime(desiredPresentTime); mFrameTracker.setFrameReadyTime(desiredPresentTime); } } if (display) { const Fps refreshRate = display->refreshRateConfigs().getCurrentRefreshRate().getFps(); const Fps refreshRate = display->refreshRateConfigs().getCurrentRefreshRate().getFps(); const std::optional<Fps> renderRate = mFlinger->mScheduler->getFrameRateOverride(getOwnerUid()); const std::optional<Fps> renderRate = mFlinger->mScheduler->getFrameRateOverride(getOwnerUid()); if (presentFence->isValid()) { if (presentFence->isValid()) { mFlinger->mTimeStats->setPresentFence(layerId, mCurrentFrameNumber, presentFence, mFlinger->mTimeStats->setPresentFence(layerId, mCurrentFrameNumber, presentFence, refreshRate, renderRate, refreshRate, renderRate, Loading @@ -430,10 +432,9 @@ bool BufferLayer::onPostComposition(const DisplayDevice* display, mDrawingState.frameRate), mDrawingState.frameRate), getGameMode()); getGameMode()); mFlinger->mFrameTracer->traceFence(layerId, getCurrentBufferId(), mCurrentFrameNumber, mFlinger->mFrameTracer->traceFence(layerId, getCurrentBufferId(), mCurrentFrameNumber, presentFence, FrameTracer::FrameEvent::PRESENT_FENCE); presentFence, FrameTracer::FrameEvent::PRESENT_FENCE); mFrameTracker.setActualPresentFence(std::shared_ptr<FenceTime>(presentFence)); mFrameTracker.setActualPresentFence(std::shared_ptr<FenceTime>(presentFence)); } else if (!display) { // Do nothing. } else if (const auto displayId = PhysicalDisplayId::tryCast(display->getId()); } else if (const auto displayId = PhysicalDisplayId::tryCast(display->getId()); displayId && mFlinger->getHwComposer().isConnected(*displayId)) { displayId && mFlinger->getHwComposer().isConnected(*displayId)) { // The HWC doesn't support present fences, so use the refresh // The HWC doesn't support present fences, so use the refresh Loading @@ -444,11 +445,12 @@ bool BufferLayer::onPostComposition(const DisplayDevice* display, frameRateToSetFrameRateVotePayload( frameRateToSetFrameRateVotePayload( mDrawingState.frameRate), mDrawingState.frameRate), getGameMode()); getGameMode()); mFlinger->mFrameTracer->traceTimestamp(layerId, getCurrentBufferId(), mCurrentFrameNumber, mFlinger->mFrameTracer->traceTimestamp(layerId, getCurrentBufferId(), actualPresentTime, mCurrentFrameNumber, actualPresentTime, FrameTracer::FrameEvent::PRESENT_FENCE); FrameTracer::FrameEvent::PRESENT_FENCE); mFrameTracker.setActualPresentTime(actualPresentTime); mFrameTracker.setActualPresentTime(actualPresentTime); } } } mFrameTracker.advanceFrame(); mFrameTracker.advanceFrame(); mBufferInfo.mFrameLatencyNeeded = false; mBufferInfo.mFrameLatencyNeeded = false; Loading