From d7971e757171823f9c9e46d98f8239b30dccd55c Mon Sep 17 00:00:00 2001 From: Carlos Martinez Romero Date: Mon, 27 Feb 2023 23:51:52 +0000 Subject: [PATCH] Update the frameCallback postAt time. Bug: 260089749 Test: Manual Change-Id: I3a37c2a482c461f3347cc47601246afb25823866 --- libs/hwui/renderthread/RenderThread.cpp | 5 +++-- libs/hwui/renderthread/RenderThread.h | 1 - 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libs/hwui/renderthread/RenderThread.cpp b/libs/hwui/renderthread/RenderThread.cpp index 7a7f1abdd268e..0afd949cf5c98 100644 --- a/libs/hwui/renderthread/RenderThread.cpp +++ b/libs/hwui/renderthread/RenderThread.cpp @@ -135,7 +135,9 @@ void RenderThread::frameCallback(int64_t vsyncId, int64_t frameDeadline, int64_t !mFrameCallbackTaskPending) { ATRACE_NAME("queue mFrameCallbackTask"); mFrameCallbackTaskPending = true; - nsecs_t runAt = (frameTimeNanos + mDispatchFrameDelay); + + nsecs_t timeUntilDeadline = frameDeadline - frameTimeNanos; + nsecs_t runAt = (frameTimeNanos + (timeUntilDeadline * 0.25f)); queue().postAt(runAt, [=]() { dispatchFrameCallbacks(); }); } } @@ -257,7 +259,6 @@ void RenderThread::initThreadLocals() { void RenderThread::setupFrameInterval() { nsecs_t frameIntervalNanos = DeviceInfo::getVsyncPeriod(); mTimeLord.setFrameInterval(frameIntervalNanos); - mDispatchFrameDelay = static_cast(frameIntervalNanos * .25f); } void RenderThread::requireGlContext() { diff --git a/libs/hwui/renderthread/RenderThread.h b/libs/hwui/renderthread/RenderThread.h index 0a89e5e944f86..c77cd4134d1ed 100644 --- a/libs/hwui/renderthread/RenderThread.h +++ b/libs/hwui/renderthread/RenderThread.h @@ -235,7 +235,6 @@ private: bool mFrameCallbackTaskPending; TimeLord mTimeLord; - nsecs_t mDispatchFrameDelay = 4_ms; RenderState* mRenderState; EglManager* mEglManager; WebViewFunctorManager& mFunctorManager;