Merge "Fix dequeus outside of frame drawing" into oc-dev
am: 944b0c73a4
Change-Id: Id9152a19194e1817f83a33b14a6cdccaa84dfeb7
This commit is contained in:
@@ -436,8 +436,15 @@ void CanvasContext::draw() {
|
||||
swap.vsyncTime = mRenderThread.timeLord().latestVsync();
|
||||
if (mNativeSurface.get()) {
|
||||
int durationUs;
|
||||
mNativeSurface->query(NATIVE_WINDOW_LAST_DEQUEUE_DURATION, &durationUs);
|
||||
swap.dequeueDuration = us2ns(durationUs);
|
||||
nsecs_t dequeueStart = mNativeSurface->getLastDequeueStartTime();
|
||||
if (dequeueStart < mCurrentFrameInfo->get(FrameInfoIndex::Vsync)) {
|
||||
// Ignoring dequeue duration as it happened prior to vsync
|
||||
// and thus is not part of the frame.
|
||||
swap.dequeueDuration = 0;
|
||||
} else {
|
||||
mNativeSurface->query(NATIVE_WINDOW_LAST_DEQUEUE_DURATION, &durationUs);
|
||||
swap.dequeueDuration = us2ns(durationUs);
|
||||
}
|
||||
mNativeSurface->query(NATIVE_WINDOW_LAST_QUEUE_DURATION, &durationUs);
|
||||
swap.queueDuration = us2ns(durationUs);
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user