Revert "Revert "Make stopped state a first-class thing""
This reverts commit eab3f2658a.
Fixes first-frame issue, mReportNextDraw needs to override
mStopped
Fixes: 28118961
Fixes: 27286867
Change-Id: I5c811759637d08ba9f3b342016d1b3006986d5a2
This commit is contained in:
@@ -115,7 +115,7 @@ bool DrawFrameTask::syncFrameState(TreeInfo& info) {
|
||||
ATRACE_CALL();
|
||||
int64_t vsync = mFrameInfo[static_cast<int>(FrameInfoIndex::Vsync)];
|
||||
mRenderThread->timeLord().vsyncReceived(vsync);
|
||||
mContext->makeCurrent();
|
||||
bool canDraw = mContext->makeCurrent();
|
||||
Caches::getInstance().textureCache.resetMarkInUse(mContext);
|
||||
|
||||
for (size_t i = 0; i < mLayers.size(); i++) {
|
||||
@@ -126,8 +126,9 @@ bool DrawFrameTask::syncFrameState(TreeInfo& info) {
|
||||
|
||||
// This is after the prepareTree so that any pending operations
|
||||
// (RenderNode tree state, prefetched layers, etc...) will be flushed.
|
||||
if (CC_UNLIKELY(!mContext->hasSurface())) {
|
||||
if (CC_UNLIKELY(!mContext->hasSurface() || !canDraw)) {
|
||||
mSyncResult |= kSync_LostSurfaceRewardIfFound;
|
||||
info.out.canDrawThisFrame = false;
|
||||
}
|
||||
|
||||
if (info.out.hasAnimations) {
|
||||
|
||||
Reference in New Issue
Block a user