Merge "Wait on frame work fences when frames are dropped am: 06e2e9cf4c am: 7a14f5aeb9" into nyc-mr1-dev-plus-aosp

This commit is contained in:
Android Build Merger (Role)
2016-09-02 17:44:13 +00:00
committed by Android (Google) Code Review
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); prepareTree(info, frameInfo, systemTime(CLOCK_MONOTONIC), node);
if (info.out.canDrawThisFrame) { if (info.out.canDrawThisFrame) {
draw(); 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(); ANDROID_API int64_t getFrameNumber();
void waitOnFences();
private: private:
friend class RegisterFrameCallbackTask; friend class RegisterFrameCallbackTask;
// TODO: Replace with something better for layer & other GL object // TODO: Replace with something better for layer & other GL object
@@ -178,8 +180,6 @@ private:
void freePrefetchedLayers(TreeObserver* observer); void freePrefetchedLayers(TreeObserver* observer);
void waitOnFences();
bool isSwapChainStuffed(); bool isSwapChainStuffed();
EGLint mLastFrameWidth = 0; EGLint mLastFrameWidth = 0;

View File

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