From 7e05ff35fa4d82f92eb6bf6c325412fac9e9729c Mon Sep 17 00:00:00 2001 From: Gao Shuo Date: Mon, 27 May 2019 14:14:57 +0800 Subject: Avoid fake high input latency while vsync drifting Usually isTrippleBuffered should be true when mSwapDeadline bigger than IntendedVsync. However, vsync could be drifting on some platforms, which make isTrippleBuffered to be true and report a fake high input latency. So add a small threshold to avoid this case. Test: Manually Change-Id: Ib6ff1046cfb94f89f4985361b84ad2d34850f783 Signed-off-by: Gao Shuo Signed-off-by: Wu Zhongmin Signed-off-by: Zhu Tingting --- libs/hwui/JankTracker.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libs/hwui/JankTracker.cpp') diff --git a/libs/hwui/JankTracker.cpp b/libs/hwui/JankTracker.cpp index 39ed9a0478b6..2016b5e914cd 100644 --- a/libs/hwui/JankTracker.cpp +++ b/libs/hwui/JankTracker.cpp @@ -138,7 +138,7 @@ void JankTracker::finishFrame(const FrameInfo& frame) { (*mGlobalData)->reportJank(); } - bool isTripleBuffered = mSwapDeadline > frame[FrameInfoIndex::IntendedVsync]; + bool isTripleBuffered = (mSwapDeadline - frame[FrameInfoIndex::IntendedVsync]) > (mFrameInterval * 0.1); mSwapDeadline = std::max(mSwapDeadline + mFrameInterval, frame[FrameInfoIndex::IntendedVsync] + mFrameInterval); -- cgit v1.2.3-59-g8ed1b