diff options
| author | 2018-03-22 21:18:49 +0000 | |
|---|---|---|
| committer | 2018-03-22 21:18:49 +0000 | |
| commit | a43de8b61a73b8a5e47703e4b3b052d7b2b521e7 (patch) | |
| tree | e34d6205c6fc1d7e0773496dbca5896a14a521d2 | |
| parent | f4f7859149164bcd44fe4fedc0ce608e58ad2e05 (diff) | |
| parent | 6f75da0474c112e7ae31b082123a0b47bdc50e10 (diff) | |
Merge "Remove old workaround for display issues" into pi-dev
| -rw-r--r-- | libs/hwui/renderthread/CanvasContext.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp index 820789dd055d..f4d8051466f0 100644 --- a/libs/hwui/renderthread/CanvasContext.cpp +++ b/libs/hwui/renderthread/CanvasContext.cpp @@ -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 @@ -367,6 +374,7 @@ void CanvasContext::prepareTree(TreeInfo& info, int64_t* uiFrameInfo, int64_t sy mLastDropVsync = mRenderThread.timeLord().latestVsync(); } } + */ } else { info.out.canDrawThisFrame = true; } |