summaryrefslogtreecommitdiff
path: root/libs/hwui/renderthread/CanvasContext.cpp
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2017-06-01 12:44:58 -0700
committerJohn Reck <jreck@google.com>2017-06-01 13:00:34 -0700
commita67b62e15e20bac6a9664e6e6be923cf82ad4138 (patch)
tree8e8c486e25bf2aaa675de0b50961db30fc0117cd /libs/hwui/renderthread/CanvasContext.cpp
parentf58fae54bfc2c560942e387a010368ccdb02dfd0 (diff)
Fix ANR & Crash on Ryu
Fixes impossible dequeue crash as the wrong start point of the frame was used. We need to use the start point for RT, not the start point for the frame. Workaround for sysui ANR caused by what appears to be a driver bug. Drivers with the bug will have transiently higher memory usage. Drivers without the bug will be unaffected. Bug: 62213889 Bug: 62250550 Test: Manual Change-Id: I9992b224f84bc1c40834bafff7e0013b38270ae0
Diffstat (limited to 'libs/hwui/renderthread/CanvasContext.cpp')
-rw-r--r--libs/hwui/renderthread/CanvasContext.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp
index cbc5163244c1..9c80ab304b80 100644
--- a/libs/hwui/renderthread/CanvasContext.cpp
+++ b/libs/hwui/renderthread/CanvasContext.cpp
@@ -437,8 +437,8 @@ void CanvasContext::draw() {
if (mNativeSurface.get()) {
int durationUs;
nsecs_t dequeueStart = mNativeSurface->getLastDequeueStartTime();
- if (dequeueStart < mCurrentFrameInfo->get(FrameInfoIndex::Vsync)) {
- // Ignoring dequeue duration as it happened prior to vsync
+ if (dequeueStart < mCurrentFrameInfo->get(FrameInfoIndex::SyncStart)) {
+ // Ignoring dequeue duration as it happened prior to frame render start
// and thus is not part of the frame.
swap.dequeueDuration = 0;
} else {