Wait on frame work fences when frames are dropped am: 06e2e9cf4c

am: 7a14f5aeb9

Change-Id: I9f2159f2f5c8111df0c14e46cc5690cbfab9b7e9
This commit is contained in:
Chris Craik
2016-09-02 17:41:57 +00:00
committed by android-build-merger
3 changed files with 8 additions and 2 deletions

View File

@@ -633,6 +633,9 @@ void CanvasContext::prepareAndDraw(RenderNode* node) {
prepareTree(info, frameInfo, systemTime(CLOCK_MONOTONIC), node);
if (info.out.canDrawThisFrame) {
draw();
} else {
// wait on fences so tasks don't overlap next frame
waitOnFences();
}
}

View File

@@ -168,6 +168,8 @@ public:
ANDROID_API int64_t getFrameNumber();
void waitOnFences();
private:
friend class RegisterFrameCallbackTask;
// TODO: Replace with something better for layer & other GL object
@@ -178,8 +180,6 @@ private:
void freePrefetchedLayers(TreeObserver* observer);
void waitOnFences();
bool isSwapChainStuffed();
EGLint mLastFrameWidth = 0;

View File

@@ -104,6 +104,9 @@ void DrawFrameTask::run() {
if (CC_LIKELY(canDrawThisFrame)) {
context->draw();
} else {
// wait on fences so tasks don't overlap next frame
context->waitOnFences();
}
if (!canUnblockUiThread) {