Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0b3b7b42 authored by Dan Stoza's avatar Dan Stoza Committed by android-build-merger
Browse files

Merge "SF: Clear local sync points on hide and destroy" into nyc-dev am: 54ebc564

am: 4c3bbb1d

* commit '4c3bbb1d':
  SF: Clear local sync points on hide and destroy

Change-Id: Ie15afeffa22354d95e3c2d7f8041033ef023527e
parents 83d099be 4c3bbb1d
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -176,6 +176,9 @@ Layer::~Layer() {
    for (auto& point : mRemoteSyncPoints) {
        point->setTransactionApplied();
    }
    for (auto& point : mLocalSyncPoints) {
        point->setFrameAvailable();
    }
    mFlinger->deleteTextureAsync(mTextureName);
    mFrameTracker.logAndResetStats(mName);
}
@@ -1476,6 +1479,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;