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:
committed by
Android (Google) Code Review
commit
2a8df9925b
@@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user