Loading libs/hwui/renderthread/CanvasContext.cpp +9 −1 Original line number Diff line number Diff line Loading @@ -355,7 +355,14 @@ void CanvasContext::prepareTree(TreeInfo& info, int64_t* uiFrameInfo, int64_t sy // Already drew for this vsync pulse, UI draw request missed // the deadline for RT animations info.out.canDrawThisFrame = false; } else if (vsyncDelta >= mRenderThread.timeLord().frameIntervalNanos() * 3 || } /* This logic exists to try and recover from a display latch miss, which essentially * results in the bufferqueue being double-buffered instead of triple-buffered. * SurfaceFlinger itself now tries to handle & recover from this situation, so this * logic should no longer be necessary. As it's occasionally triggering when * undesired disable it. * TODO: Remove this entirely if the results are solid. else if (vsyncDelta >= mRenderThread.timeLord().frameIntervalNanos() * 3 || (latestVsync - mLastDropVsync) < 500_ms) { // It's been several frame intervals, assume the buffer queue is fine // or the last drop was too recent Loading @@ -367,6 +374,7 @@ void CanvasContext::prepareTree(TreeInfo& info, int64_t* uiFrameInfo, int64_t sy mLastDropVsync = mRenderThread.timeLord().latestVsync(); } } */ } else { info.out.canDrawThisFrame = true; } Loading Loading
libs/hwui/renderthread/CanvasContext.cpp +9 −1 Original line number Diff line number Diff line Loading @@ -355,7 +355,14 @@ void CanvasContext::prepareTree(TreeInfo& info, int64_t* uiFrameInfo, int64_t sy // Already drew for this vsync pulse, UI draw request missed // the deadline for RT animations info.out.canDrawThisFrame = false; } else if (vsyncDelta >= mRenderThread.timeLord().frameIntervalNanos() * 3 || } /* This logic exists to try and recover from a display latch miss, which essentially * results in the bufferqueue being double-buffered instead of triple-buffered. * SurfaceFlinger itself now tries to handle & recover from this situation, so this * logic should no longer be necessary. As it's occasionally triggering when * undesired disable it. * TODO: Remove this entirely if the results are solid. else if (vsyncDelta >= mRenderThread.timeLord().frameIntervalNanos() * 3 || (latestVsync - mLastDropVsync) < 500_ms) { // It's been several frame intervals, assume the buffer queue is fine // or the last drop was too recent Loading @@ -367,6 +374,7 @@ void CanvasContext::prepareTree(TreeInfo& info, int64_t* uiFrameInfo, int64_t sy mLastDropVsync = mRenderThread.timeLord().latestVsync(); } } */ } else { info.out.canDrawThisFrame = true; } Loading