Loading services/surfaceflinger/Layer.cpp +14 −0 Original line number Diff line number Diff line Loading @@ -178,6 +178,9 @@ Layer::~Layer() { for (auto& point : mRemoteSyncPoints) { point->setTransactionApplied(); } for (auto& point : mLocalSyncPoints) { point->setFrameAvailable(); } mFlinger->deleteTextureAsync(mTextureName); mFrameTracker.logAndResetStats(mName); } Loading Loading @@ -1478,6 +1481,17 @@ uint32_t Layer::doTransaction(uint32_t flags) { (type >= Transform::SCALE)); } // If the layer is hidden, signal and clear out all local sync points so // that transactions for layers depending on this layer's frames becoming // visible are not blocked if (c.flags & layer_state_t::eLayerHidden) { Mutex::Autolock lock(mLocalSyncPointMutex); for (auto& point : mLocalSyncPoints) { point->setFrameAvailable(); } mLocalSyncPoints.clear(); } // Commit the transaction commitTransaction(c); return flags; Loading Loading
services/surfaceflinger/Layer.cpp +14 −0 Original line number Diff line number Diff line Loading @@ -178,6 +178,9 @@ Layer::~Layer() { for (auto& point : mRemoteSyncPoints) { point->setTransactionApplied(); } for (auto& point : mLocalSyncPoints) { point->setFrameAvailable(); } mFlinger->deleteTextureAsync(mTextureName); mFrameTracker.logAndResetStats(mName); } Loading Loading @@ -1478,6 +1481,17 @@ uint32_t Layer::doTransaction(uint32_t flags) { (type >= Transform::SCALE)); } // If the layer is hidden, signal and clear out all local sync points so // that transactions for layers depending on this layer's frames becoming // visible are not blocked if (c.flags & layer_state_t::eLayerHidden) { Mutex::Autolock lock(mLocalSyncPointMutex); for (auto& point : mLocalSyncPoints) { point->setFrameAvailable(); } mLocalSyncPoints.clear(); } // Commit the transaction commitTransaction(c); return flags; Loading