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

Commit f2dace7b authored by chaviw's avatar chaviw
Browse files

Only add commit callback when using sync transaction

There's no need to add a commit callback when we're not syncing since
the callback won't actually do anything. Instead only add a commit
callback when a sync transaction has been requested.

Test: BLASTBufferQueueTest
Bug: 205278630
Change-Id: Ib7345f2581b6e4ce8923531aebcd457c14d86027
parent e23937a7
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -507,7 +507,6 @@ void BLASTBufferQueue::acquireNextBufferLocked(

    // Ensure BLASTBufferQueue stays alive until we receive the transaction complete callback.
    incStrong((void*)transactionCallbackThunk);
    incStrong((void*)transactionCommittedCallbackThunk);

    const bool sizeHasChanged = mRequestedSize != mSize;
    mSize = mRequestedSize;
@@ -527,7 +526,7 @@ void BLASTBufferQueue::acquireNextBufferLocked(
    t->setHdrMetadata(mSurfaceControl, bufferItem.mHdrMetadata);
    t->setSurfaceDamageRegion(mSurfaceControl, bufferItem.mSurfaceDamage);
    t->addTransactionCompletedCallback(transactionCallbackThunk, static_cast<void*>(this));
    t->addTransactionCommittedCallback(transactionCommittedCallbackThunk, static_cast<void*>(this));

    mSurfaceControlsWithPendingCallback.push(mSurfaceControl);

    if (updateDestinationFrame) {
@@ -658,6 +657,13 @@ void BLASTBufferQueue::onFrameAvailable(const BufferItem& item) {

    if (syncTransactionSet) {
        acquireNextBufferLocked(mSyncTransaction);

        // Only need a commit callback when syncing to ensure the buffer that's synced has been sent
        // to SF
        incStrong((void*)transactionCommittedCallbackThunk);
        mSyncTransaction->addTransactionCommittedCallback(transactionCommittedCallbackThunk,
                                                          static_cast<void*>(this));

        if (mAcquireSingleBuffer) {
            mSyncTransaction = nullptr;
        }