diff options
8 files changed, 37 insertions, 217 deletions
diff --git a/libs/gui/include/gui/ISurfaceComposer.h b/libs/gui/include/gui/ISurfaceComposer.h index 1e85131386..d46c2e7e24 100644 --- a/libs/gui/include/gui/ISurfaceComposer.h +++ b/libs/gui/include/gui/ISurfaceComposer.h @@ -95,7 +95,6 @@ public: // flags for setTransactionState() enum { - eSynchronous = 0x01, eAnimation = 0x02, // Explicit indication that this transaction and others to follow will likely result in a diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 7d3fc98578..3419721865 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -3228,7 +3228,6 @@ void SurfaceFlinger::commitTransactionsLocked(uint32_t transactionFlags) { } doCommitTransactions(); - signalSynchronousTransactions(CountDownLatch::eSyncTransaction); } void SurfaceFlinger::updateInputFlinger() { @@ -3825,10 +3824,6 @@ bool SurfaceFlinger::applyTransactions(std::vector<TransactionState>& transactio transaction.permissions, transaction.hasListenerCallbacks, transaction.listenerCallbacks, transaction.originPid, transaction.originUid, transaction.id); - if (transaction.transactionCommittedSignal) { - mTransactionCommittedSignals.emplace_back( - std::move(transaction.transactionCommittedSignal)); - } } if (mTransactionTracing) { @@ -4004,12 +3999,6 @@ auto SurfaceFlinger::transactionIsReadyToBeApplied( } void SurfaceFlinger::queueTransaction(TransactionState& state) { - // Generate a CountDownLatch pending state if this is a synchronous transaction. - if (state.flags & eSynchronous) { - state.transactionCommittedSignal = - std::make_shared<CountDownLatch>(CountDownLatch::eSyncTransaction); - } - mLocklessTransactionQueue.push(state); mPendingTransactionCount++; ATRACE_INT("TransactionQueue", mPendingTransactionCount.load()); @@ -4025,28 +4014,6 @@ void SurfaceFlinger::queueTransaction(TransactionState& state) { setTransactionFlags(eTransactionFlushNeeded, schedule, state.applyToken, frameHint); } -void SurfaceFlinger::waitForSynchronousTransaction( - const CountDownLatch& transactionCommittedSignal) { - // applyTransactionState is called on the main SF thread. While a given process may wish - // to wait on synchronous transactions, the main SF thread should apply the transaction and - // set the value to notify this after committed. - if (!transactionCommittedSignal.wait_until( - std::chrono::nanoseconds(mAnimationTransactionTimeout))) { - ALOGE("setTransactionState timed out!"); - } -} - -void SurfaceFlinger::signalSynchronousTransactions(const uint32_t flag) { - for (auto it = mTransactionCommittedSignals.begin(); - it != mTransactionCommittedSignals.end();) { - if ((*it)->countDown(flag)) { - it = mTransactionCommittedSignals.erase(it); - } else { - it++; - } - } -} - status_t SurfaceFlinger::setTransactionState( const FrameTimelineInfo& frameTimelineInfo, const Vector<ComposerState>& states, const Vector<DisplayState>& displays, uint32_t flags, const sp<IBinder>& applyToken, @@ -4099,11 +4066,6 @@ status_t SurfaceFlinger::setTransactionState( } queueTransaction(state); - // Check the pending state to make sure the transaction is synchronous. - if (state.transactionCommittedSignal) { - waitForSynchronousTransaction(*state.transactionCommittedSignal); - } - return NO_ERROR; } @@ -4160,8 +4122,7 @@ bool SurfaceFlinger::applyTransactionState(const FrameTimelineInfo& frameTimelin // anyway. This can be used as a flush mechanism for previous async transactions. // Empty animation transaction can be used to simulate back-pressure, so also force a // transaction for empty animation transactions. - if (transactionFlags == 0 && - ((flags & eSynchronous) || (flags & eAnimation))) { + if (transactionFlags == 0 && (flags & eAnimation)) { transactionFlags = eTransactionNeeded; } diff --git a/services/surfaceflinger/SurfaceFlinger.h b/services/surfaceflinger/SurfaceFlinger.h index 85d11bad04..baaf41ec02 100644 --- a/services/surfaceflinger/SurfaceFlinger.h +++ b/services/surfaceflinger/SurfaceFlinger.h @@ -1095,8 +1095,6 @@ private: // Add transaction to the Transaction Queue void queueTransaction(TransactionState& state); - void waitForSynchronousTransaction(const CountDownLatch& transactionCommittedSignal); - void signalSynchronousTransactions(const uint32_t flag); /* * Generic Layer Metadata @@ -1129,7 +1127,6 @@ private: mutable Mutex mStateLock; State mCurrentState{LayerVector::StateSet::Current}; std::atomic<int32_t> mTransactionFlags = 0; - std::vector<std::shared_ptr<CountDownLatch>> mTransactionCommittedSignals; std::atomic<uint32_t> mUniqueTransactionId = 1; SortedVector<sp<Layer>> mLayersPendingRemoval; @@ -1418,8 +1415,6 @@ private: bool early = false; } mPowerHintSessionMode; - nsecs_t mAnimationTransactionTimeout = s2ns(5); - friend class SurfaceComposerAIDL; }; diff --git a/services/surfaceflinger/SurfaceInterceptor.cpp b/services/surfaceflinger/SurfaceInterceptor.cpp index 6797aa697b..c90ae4cd83 100644 --- a/services/surfaceflinger/SurfaceInterceptor.cpp +++ b/services/surfaceflinger/SurfaceInterceptor.cpp @@ -127,7 +127,6 @@ void SurfaceInterceptor::addInitialSurfaceStateLocked(Increment* increment, { Transaction* transaction(increment->mutable_transaction()); const uint32_t layerFlags = layer->getTransactionFlags(); - transaction->set_synchronous(layerFlags & BnSurfaceComposer::eSynchronous); transaction->set_animation(layerFlags & BnSurfaceComposer::eAnimation); const int32_t layerId(getLayerId(layer)); @@ -495,7 +494,6 @@ void SurfaceInterceptor::addTransactionLocked( const Vector<DisplayState>& changedDisplays, uint32_t transactionFlags, int originPid, int originUid, uint64_t transactionId) { Transaction* transaction(increment->mutable_transaction()); - transaction->set_synchronous(transactionFlags & BnSurfaceComposer::eSynchronous); transaction->set_animation(transactionFlags & BnSurfaceComposer::eAnimation); setTransactionOriginLocked(transaction, originPid, originUid); transaction->set_id(transactionId); diff --git a/services/surfaceflinger/TransactionState.h b/services/surfaceflinger/TransactionState.h index 61f0fa6b64..95eb503327 100644 --- a/services/surfaceflinger/TransactionState.h +++ b/services/surfaceflinger/TransactionState.h @@ -26,8 +26,6 @@ namespace android { -class CountDownLatch; - struct TransactionState { TransactionState() = default; @@ -97,49 +95,7 @@ struct TransactionState { int originPid; int originUid; uint64_t id; - std::shared_ptr<CountDownLatch> transactionCommittedSignal; bool sentFenceTimeoutWarning = false; }; -class CountDownLatch { -public: - enum { - eSyncTransaction = 1 << 0, - }; - explicit CountDownLatch(uint32_t flags) : mFlags(flags) {} - - // True if there is no waiting condition after count down. - bool countDown(uint32_t flag) { - std::unique_lock<std::mutex> lock(mMutex); - if (mFlags == 0) { - return true; - } - mFlags &= ~flag; - if (mFlags == 0) { - mCountDownComplete.notify_all(); - return true; - } - return false; - } - - // Return true if triggered. - bool wait_until(const std::chrono::nanoseconds& timeout) const { - std::unique_lock<std::mutex> lock(mMutex); - const auto untilTime = std::chrono::system_clock::now() + timeout; - while (mFlags != 0) { - // Conditional variables can be woken up sporadically, so we check count - // to verify the wakeup was triggered by |countDown|. - if (std::cv_status::timeout == mCountDownComplete.wait_until(lock, untilTime)) { - return false; - } - } - return true; - } - -private: - uint32_t mFlags; - mutable std::condition_variable mCountDownComplete; - mutable std::mutex mMutex; -}; - } // namespace android diff --git a/services/surfaceflinger/fuzzer/surfaceflinger_fuzzers_utils.h b/services/surfaceflinger/fuzzer/surfaceflinger_fuzzers_utils.h index 69dbfe0280..370b23c7ce 100644 --- a/services/surfaceflinger/fuzzer/surfaceflinger_fuzzers_utils.h +++ b/services/surfaceflinger/fuzzer/surfaceflinger_fuzzers_utils.h @@ -455,10 +455,6 @@ public: mFlinger->calculateColorMatrix(fdp->ConsumeFloatingPoint<float>()); mFlinger->updateColorMatrixLocked(); mFlinger->CheckTransactCodeCredentials(fdp->ConsumeIntegral<uint32_t>()); - - const CountDownLatch transactionCommittedSignal(fdp->ConsumeIntegral<uint32_t>()); - mFlinger->waitForSynchronousTransaction(transactionCommittedSignal); - mFlinger->signalSynchronousTransactions(fdp->ConsumeIntegral<uint32_t>()); } void getCompositionPreference() { diff --git a/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h b/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h index 13389a1ad3..e1a0eeb7fe 100644 --- a/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h +++ b/services/surfaceflinger/tests/unittests/TestableSurfaceFlinger.h @@ -158,7 +158,6 @@ public: if (!mFlinger) { mFlinger = sp<SurfaceFlinger>::make(mFactory, SurfaceFlinger::SkipInitialization); } - mFlinger->mAnimationTransactionTimeout = ms2ns(10); } SurfaceFlinger* flinger() { return mFlinger.get(); } @@ -420,7 +419,6 @@ public: auto& getTransactionQueue() { return mFlinger->mLocklessTransactionQueue; } auto& getPendingTransactionQueue() { return mFlinger->mPendingTransactionQueues; } - auto& getTransactionCommittedSignals() { return mFlinger->mTransactionCommittedSignals; } auto setTransactionState( const FrameTimelineInfo& frameTimelineInfo, const Vector<ComposerState>& states, @@ -493,10 +491,6 @@ public: return static_cast<mock::FrameTracer*>(mFlinger->mFrameTracer.get()); } - nsecs_t getAnimationTransactionTimeout() const { - return mFlinger->mAnimationTransactionTimeout; - } - /* ------------------------------------------------------------------------ * Read-write access to private data to set up preconditions and assert * post-conditions. diff --git a/services/surfaceflinger/tests/unittests/TransactionApplicationTest.cpp b/services/surfaceflinger/tests/unittests/TransactionApplicationTest.cpp index b493d113b7..b4030b3617 100644 --- a/services/surfaceflinger/tests/unittests/TransactionApplicationTest.cpp +++ b/services/surfaceflinger/tests/unittests/TransactionApplicationTest.cpp @@ -37,7 +37,7 @@ using testing::_; using testing::Return; using FakeHwcDisplayInjector = TestableSurfaceFlinger::FakeHwcDisplayInjector; - +constexpr nsecs_t TRANSACTION_TIMEOUT = s2ns(5); class TransactionApplicationTest : public testing::Test { public: TransactionApplicationTest() { @@ -112,7 +112,7 @@ public: void setupSingle(TransactionInfo& transaction, uint32_t flags, int64_t desiredPresentTime, bool isAutoTimestamp, const FrameTimelineInfo& frameTimelineInfo) { mTransactionNumber++; - transaction.flags |= flags; // ISurfaceComposer::eSynchronous; + transaction.flags |= flags; transaction.desiredPresentTime = desiredPresentTime; transaction.isAutoTimestamp = isAutoTimestamp; transaction.frameTimelineInfo = frameTimelineInfo; @@ -136,11 +136,7 @@ public: // If transaction is synchronous, SF applyTransactionState should time out (5s) wating for // SF to commit the transaction. If this is animation, it should not time out waiting. nsecs_t returnedTime = systemTime(); - if (flags & ISurfaceComposer::eSynchronous) { - EXPECT_GE(returnedTime, applicationTime + mFlinger.getAnimationTransactionTimeout()); - } else { - EXPECT_LE(returnedTime, applicationTime + mFlinger.getAnimationTransactionTimeout()); - } + EXPECT_LE(returnedTime, applicationTime + TRANSACTION_TIMEOUT); // Each transaction should have been placed on the transaction queue auto& transactionQueue = mFlinger.getTransactionQueue(); EXPECT_FALSE(transactionQueue.isEmpty()); @@ -165,13 +161,7 @@ public: transaction.id); nsecs_t returnedTime = systemTime(); - if (flags & ISurfaceComposer::eSynchronous) { - EXPECT_GE(systemTime(), - applicationSentTime + mFlinger.getAnimationTransactionTimeout()); - } else { - EXPECT_LE(returnedTime, - applicationSentTime + mFlinger.getAnimationTransactionTimeout()); - } + EXPECT_LE(returnedTime, applicationSentTime + TRANSACTION_TIMEOUT); // This transaction should have been placed on the transaction queue auto& transactionQueue = mFlinger.getTransactionQueue(); EXPECT_FALSE(transactionQueue.isEmpty()); @@ -204,7 +194,7 @@ public: // This thread should not have been blocked by the above transaction // (5s is the timeout period that applyTransactionState waits for SF to // commit the transaction) - EXPECT_LE(systemTime(), applicationSentTime + mFlinger.getAnimationTransactionTimeout()); + EXPECT_LE(systemTime(), applicationSentTime + TRANSACTION_TIMEOUT); // transaction that would goes to pending transaciton queue. mFlinger.flushTransactionQueues(); @@ -220,13 +210,7 @@ public: // if this is an animation, this thread should be blocked for 5s // in setTransactionState waiting for transactionA to flush. Otherwise, // the transaction should be placed on the pending queue - if (flags & ISurfaceComposer::eSynchronous) { - EXPECT_GE(systemTime(), - applicationSentTime + mFlinger.getAnimationTransactionTimeout()); - } else { - EXPECT_LE(systemTime(), - applicationSentTime + mFlinger.getAnimationTransactionTimeout()); - } + EXPECT_LE(systemTime(), applicationSentTime + TRANSACTION_TIMEOUT); // transaction that would goes to pending transaciton queue. mFlinger.flushTransactionQueues(); @@ -294,26 +278,14 @@ TEST_F(TransactionApplicationTest, Flush_RemovesFromQueue) { EXPECT_TRUE(mFlinger.getTransactionQueue().isEmpty()); } -TEST_F(TransactionApplicationTest, NotPlacedOnTransactionQueue_Synchronous) { - NotPlacedOnTransactionQueue(ISurfaceComposer::eSynchronous); -} - TEST_F(TransactionApplicationTest, NotPlacedOnTransactionQueue_SyncInputWindows) { NotPlacedOnTransactionQueue(/*flags*/ 0); } -TEST_F(TransactionApplicationTest, PlaceOnTransactionQueue_Synchronous) { - PlaceOnTransactionQueue(ISurfaceComposer::eSynchronous); -} - TEST_F(TransactionApplicationTest, PlaceOnTransactionQueue_SyncInputWindows) { PlaceOnTransactionQueue(/*flags*/ 0); } -TEST_F(TransactionApplicationTest, BlockWithPriorTransaction_Synchronous) { - BlockedByPriorTransaction(ISurfaceComposer::eSynchronous); -} - TEST_F(TransactionApplicationTest, FromHandle) { sp<IBinder> badHandle; auto ret = mFlinger.fromHandle(badHandle); @@ -329,7 +301,6 @@ public: mFlinger.getTransactionQueue().pop(); } mFlinger.getPendingTransactionQueue().clear(); - mFlinger.getTransactionCommittedSignals().clear(); mFlinger.commitTransactionsLocked(eTransactionMask); mFlinger.mutableCurrentState().layersSortedByZ.clear(); mFlinger.mutableDrawingState().layersSortedByZ.clear(); @@ -361,7 +332,7 @@ public: TransactionInfo createTransactionInfo(const sp<IBinder>& applyToken, const std::vector<ComposerState>& states) { TransactionInfo transaction; - const uint32_t kFlags = ISurfaceComposer::eSynchronous; + const uint32_t kFlags = 0; const nsecs_t kDesiredPresentTime = systemTime(); const bool kIsAutoTimestamp = true; const auto kFrameTimelineInfo = FrameTimelineInfo{}; @@ -376,7 +347,6 @@ public: } void setTransactionStates(const std::vector<TransactionInfo>& transactions, - size_t expectedTransactionsApplied, size_t expectedTransactionsPending) { EXPECT_TRUE(mFlinger.getTransactionQueue().isEmpty()); EXPECT_EQ(0u, mFlinger.getPendingTransactionQueue().size()); @@ -392,7 +362,6 @@ public: mFlinger.flushTransactionQueues(); EXPECT_TRUE(mFlinger.getTransactionQueue().isEmpty()); EXPECT_EQ(expectedTransactionsPending, mFlinger.getPendingTransactionQueue().size()); - EXPECT_EQ(expectedTransactionsApplied, mFlinger.getTransactionCommittedSignals().size()); } }; @@ -408,22 +377,19 @@ TEST_F(LatchUnsignaledAutoSingleLayerTest, Flush_RemovesSingleSignaledFromTheQue const sp<IBinder> kApplyToken = IInterface::asBinder(TransactionCompletedListener::getIInstance()); const auto kLayerId = 1; - const auto kExpectedTransactionsApplied = 1u; const auto kExpectedTransactionsPending = 0u; const auto signaledTransaction = createTransactionInfo(kApplyToken, {createComposerState(kLayerId, fence(Fence::Status::Signaled), layer_state_t::eBufferChanged)}); - setTransactionStates({signaledTransaction}, kExpectedTransactionsApplied, - kExpectedTransactionsPending); + setTransactionStates({signaledTransaction}, kExpectedTransactionsPending); } TEST_F(LatchUnsignaledAutoSingleLayerTest, Flush_RemovesSingleUnSignaledFromTheQueue) { const sp<IBinder> kApplyToken = IInterface::asBinder(TransactionCompletedListener::getIInstance()); const auto kLayerId = 1; - const auto kExpectedTransactionsApplied = 1u; const auto kExpectedTransactionsPending = 0u; const auto unsignaledTransaction = @@ -433,15 +399,13 @@ TEST_F(LatchUnsignaledAutoSingleLayerTest, Flush_RemovesSingleUnSignaledFromTheQ fence(Fence::Status::Unsignaled), layer_state_t::eBufferChanged), }); - setTransactionStates({unsignaledTransaction}, kExpectedTransactionsApplied, - kExpectedTransactionsPending); + setTransactionStates({unsignaledTransaction}, kExpectedTransactionsPending); } TEST_F(LatchUnsignaledAutoSingleLayerTest, Flush_KeepsUnSignaledInTheQueue_NonBufferCropChange) { const sp<IBinder> kApplyToken = IInterface::asBinder(TransactionCompletedListener::getIInstance()); const auto kLayerId = 1; - const auto kExpectedTransactionsApplied = 0u; const auto kExpectedTransactionsPending = 1u; const auto unsignaledTransaction = @@ -451,15 +415,13 @@ TEST_F(LatchUnsignaledAutoSingleLayerTest, Flush_KeepsUnSignaledInTheQueue_NonBu fence(Fence::Status::Unsignaled), layer_state_t::eCropChanged), }); - setTransactionStates({unsignaledTransaction}, kExpectedTransactionsApplied, - kExpectedTransactionsPending); + setTransactionStates({unsignaledTransaction}, kExpectedTransactionsPending); } TEST_F(LatchUnsignaledAutoSingleLayerTest, Flush_KeepsUnSignaledInTheQueue_NonBufferChangeClubed) { const sp<IBinder> kApplyToken = IInterface::asBinder(TransactionCompletedListener::getIInstance()); const auto kLayerId = 1; - const auto kExpectedTransactionsApplied = 0u; const auto kExpectedTransactionsPending = 1u; const auto unsignaledTransaction = @@ -471,15 +433,13 @@ TEST_F(LatchUnsignaledAutoSingleLayerTest, Flush_KeepsUnSignaledInTheQueue_NonBu layer_state_t:: eBufferChanged), }); - setTransactionStates({unsignaledTransaction}, kExpectedTransactionsApplied, - kExpectedTransactionsPending); + setTransactionStates({unsignaledTransaction}, kExpectedTransactionsPending); } TEST_F(LatchUnsignaledAutoSingleLayerTest, Flush_KeepsInTheQueueSameApplyTokenMultiState) { const sp<IBinder> kApplyToken = IInterface::asBinder(TransactionCompletedListener::getIInstance()); const auto kLayerId = 1; - const auto kExpectedTransactionsApplied = 0u; const auto kExpectedTransactionsPending = 1u; const auto mixedTransaction = @@ -492,8 +452,7 @@ TEST_F(LatchUnsignaledAutoSingleLayerTest, Flush_KeepsInTheQueueSameApplyTokenMu fence(Fence::Status::Signaled), layer_state_t::eBufferChanged), }); - setTransactionStates({mixedTransaction}, kExpectedTransactionsApplied, - kExpectedTransactionsPending); + setTransactionStates({mixedTransaction}, kExpectedTransactionsPending); } TEST_F(LatchUnsignaledAutoSingleLayerTest, Flush_KeepsInTheQueue_MultipleStateTransaction) { @@ -501,7 +460,6 @@ TEST_F(LatchUnsignaledAutoSingleLayerTest, Flush_KeepsInTheQueue_MultipleStateTr IInterface::asBinder(TransactionCompletedListener::getIInstance()); const auto kLayerId1 = 1; const auto kLayerId2 = 2; - const auto kExpectedTransactionsApplied = 0u; const auto kExpectedTransactionsPending = 1u; const auto mixedTransaction = @@ -514,8 +472,7 @@ TEST_F(LatchUnsignaledAutoSingleLayerTest, Flush_KeepsInTheQueue_MultipleStateTr fence(Fence::Status::Signaled), layer_state_t::eBufferChanged), }); - setTransactionStates({mixedTransaction}, kExpectedTransactionsApplied, - kExpectedTransactionsPending); + setTransactionStates({mixedTransaction}, kExpectedTransactionsPending); } TEST_F(LatchUnsignaledAutoSingleLayerTest, Flush_RemovesSignaledFromTheQueue) { @@ -523,7 +480,6 @@ TEST_F(LatchUnsignaledAutoSingleLayerTest, Flush_RemovesSignaledFromTheQueue) { IInterface::asBinder(TransactionCompletedListener::getIInstance()); const auto kLayerId1 = 1; const auto kLayerId2 = 2; - const auto kExpectedTransactionsApplied = 2u; const auto kExpectedTransactionsPending = 0u; const auto signaledTransaction = @@ -540,8 +496,7 @@ TEST_F(LatchUnsignaledAutoSingleLayerTest, Flush_RemovesSignaledFromTheQueue) { fence(Fence::Status::Signaled), layer_state_t::eBufferChanged), }); - setTransactionStates({signaledTransaction, signaledTransaction2}, kExpectedTransactionsApplied, - kExpectedTransactionsPending); + setTransactionStates({signaledTransaction, signaledTransaction2}, kExpectedTransactionsPending); } TEST_F(LatchUnsignaledAutoSingleLayerTest, @@ -552,7 +507,6 @@ TEST_F(LatchUnsignaledAutoSingleLayerTest, const sp<IBinder> kApplyToken3 = sp<BBinder>::make(); const auto kLayerId1 = 1; const auto kLayerId2 = 2; - const auto kExpectedTransactionsApplied = 2u; const auto kExpectedTransactionsPending = 1u; const auto unsignaledTransaction = @@ -579,7 +533,7 @@ TEST_F(LatchUnsignaledAutoSingleLayerTest, }); setTransactionStates({unsignaledTransaction, signaledTransaction, signaledTransaction2}, - kExpectedTransactionsApplied, kExpectedTransactionsPending); + kExpectedTransactionsPending); } TEST_F(LatchUnsignaledAutoSingleLayerTest, UnsignaledNotAppliedWhenThereAreSignaled_SignaledFirst) { @@ -589,7 +543,6 @@ TEST_F(LatchUnsignaledAutoSingleLayerTest, UnsignaledNotAppliedWhenThereAreSigna const sp<IBinder> kApplyToken3 = sp<BBinder>::make(); const auto kLayerId1 = 1; const auto kLayerId2 = 2; - const auto kExpectedTransactionsApplied = 2u; const auto kExpectedTransactionsPending = 1u; const auto signaledTransaction = @@ -615,7 +568,7 @@ TEST_F(LatchUnsignaledAutoSingleLayerTest, UnsignaledNotAppliedWhenThereAreSigna }); setTransactionStates({signaledTransaction, signaledTransaction2, unsignaledTransaction}, - kExpectedTransactionsApplied, kExpectedTransactionsPending); + kExpectedTransactionsPending); } TEST_F(LatchUnsignaledAutoSingleLayerTest, Flush_KeepsTransactionInTheQueueSameApplyToken) { @@ -623,7 +576,6 @@ TEST_F(LatchUnsignaledAutoSingleLayerTest, Flush_KeepsTransactionInTheQueueSameA IInterface::asBinder(TransactionCompletedListener::getIInstance()); const auto kLayerId1 = 1; const auto kLayerId2 = 2; - const auto kExpectedTransactionsApplied = 1u; const auto kExpectedTransactionsPending = 1u; const auto unsignaledTransaction = @@ -640,7 +592,7 @@ TEST_F(LatchUnsignaledAutoSingleLayerTest, Flush_KeepsTransactionInTheQueueSameA fence(Fence::Status::Signaled), layer_state_t::eBufferChanged), }); - setTransactionStates({unsignaledTransaction, signaledTransaction}, kExpectedTransactionsApplied, + setTransactionStates({unsignaledTransaction, signaledTransaction}, kExpectedTransactionsPending); } @@ -650,7 +602,6 @@ TEST_F(LatchUnsignaledAutoSingleLayerTest, Flush_KeepsTransactionInTheQueue) { const sp<IBinder> kApplyToken2 = sp<BBinder>::make(); const auto kLayerId1 = 1; const auto kLayerId2 = 2; - const auto kExpectedTransactionsApplied = 1u; const auto kExpectedTransactionsPending = 1u; const auto unsignaledTransaction = @@ -668,14 +619,13 @@ TEST_F(LatchUnsignaledAutoSingleLayerTest, Flush_KeepsTransactionInTheQueue) { layer_state_t::eBufferChanged), }); setTransactionStates({unsignaledTransaction, unsignaledTransaction2}, - kExpectedTransactionsApplied, kExpectedTransactionsPending); + kExpectedTransactionsPending); } TEST_F(LatchUnsignaledAutoSingleLayerTest, DontLatchUnsignaledWhenEarlyOffset) { const sp<IBinder> kApplyToken = IInterface::asBinder(TransactionCompletedListener::getIInstance()); const auto kLayerId = 1; - const auto kExpectedTransactionsApplied = 0u; const auto kExpectedTransactionsPending = 1u; const auto unsignaledTransaction = @@ -689,8 +639,7 @@ TEST_F(LatchUnsignaledAutoSingleLayerTest, DontLatchUnsignaledWhenEarlyOffset) { // Get VsyncModulator out of the default config static_cast<void>(mFlinger.mutableVsyncModulator()->onRefreshRateChangeInitiated()); - setTransactionStates({unsignaledTransaction}, kExpectedTransactionsApplied, - kExpectedTransactionsPending); + setTransactionStates({unsignaledTransaction}, kExpectedTransactionsPending); } class LatchUnsignaledDisabledTest : public LatchUnsignaledTest { @@ -705,22 +654,19 @@ TEST_F(LatchUnsignaledDisabledTest, Flush_RemovesSignaledFromTheQueue) { const sp<IBinder> kApplyToken = IInterface::asBinder(TransactionCompletedListener::getIInstance()); const auto kLayerId = 1; - const auto kExpectedTransactionsApplied = 1u; const auto kExpectedTransactionsPending = 0u; const auto signaledTransaction = createTransactionInfo(kApplyToken, {createComposerState(kLayerId, fence(Fence::Status::Signaled), layer_state_t::eBufferChanged)}); - setTransactionStates({signaledTransaction}, kExpectedTransactionsApplied, - kExpectedTransactionsPending); + setTransactionStates({signaledTransaction}, kExpectedTransactionsPending); } TEST_F(LatchUnsignaledDisabledTest, Flush_KeepsInTheQueue) { const sp<IBinder> kApplyToken = IInterface::asBinder(TransactionCompletedListener::getIInstance()); const auto kLayerId = 1; - const auto kExpectedTransactionsApplied = 0u; const auto kExpectedTransactionsPending = 1u; const auto unsignaledTransaction = @@ -730,15 +676,13 @@ TEST_F(LatchUnsignaledDisabledTest, Flush_KeepsInTheQueue) { fence(Fence::Status::Unsignaled), layer_state_t::eBufferChanged), }); - setTransactionStates({unsignaledTransaction}, kExpectedTransactionsApplied, - kExpectedTransactionsPending); + setTransactionStates({unsignaledTransaction}, kExpectedTransactionsPending); } TEST_F(LatchUnsignaledDisabledTest, Flush_KeepsInTheQueueSameLayerId) { const sp<IBinder> kApplyToken = IInterface::asBinder(TransactionCompletedListener::getIInstance()); const auto kLayerId = 1; - const auto kExpectedTransactionsApplied = 0u; const auto kExpectedTransactionsPending = 1u; const auto unsignaledTransaction = @@ -751,8 +695,7 @@ TEST_F(LatchUnsignaledDisabledTest, Flush_KeepsInTheQueueSameLayerId) { fence(Fence::Status::Unsignaled), layer_state_t::eBufferChanged), }); - setTransactionStates({unsignaledTransaction}, kExpectedTransactionsApplied, - kExpectedTransactionsPending); + setTransactionStates({unsignaledTransaction}, kExpectedTransactionsPending); } TEST_F(LatchUnsignaledDisabledTest, Flush_KeepsInTheQueueDifferentLayerId) { @@ -760,7 +703,6 @@ TEST_F(LatchUnsignaledDisabledTest, Flush_KeepsInTheQueueDifferentLayerId) { IInterface::asBinder(TransactionCompletedListener::getIInstance()); const auto kLayerId1 = 1; const auto kLayerId2 = 2; - const auto kExpectedTransactionsApplied = 0u; const auto kExpectedTransactionsPending = 1u; const auto unsignaledTransaction = @@ -773,8 +715,7 @@ TEST_F(LatchUnsignaledDisabledTest, Flush_KeepsInTheQueueDifferentLayerId) { fence(Fence::Status::Unsignaled), layer_state_t::eBufferChanged), }); - setTransactionStates({unsignaledTransaction}, kExpectedTransactionsApplied, - kExpectedTransactionsPending); + setTransactionStates({unsignaledTransaction}, kExpectedTransactionsPending); } TEST_F(LatchUnsignaledDisabledTest, Flush_RemovesSignaledFromTheQueue_MultipleLayers) { @@ -782,7 +723,6 @@ TEST_F(LatchUnsignaledDisabledTest, Flush_RemovesSignaledFromTheQueue_MultipleLa IInterface::asBinder(TransactionCompletedListener::getIInstance()); const auto kLayerId1 = 1; const auto kLayerId2 = 2; - const auto kExpectedTransactionsApplied = 2u; const auto kExpectedTransactionsPending = 0u; const auto signaledTransaction = @@ -799,8 +739,7 @@ TEST_F(LatchUnsignaledDisabledTest, Flush_RemovesSignaledFromTheQueue_MultipleLa fence(Fence::Status::Signaled), layer_state_t::eBufferChanged), }); - setTransactionStates({signaledTransaction, signaledTransaction2}, kExpectedTransactionsApplied, - kExpectedTransactionsPending); + setTransactionStates({signaledTransaction, signaledTransaction2}, kExpectedTransactionsPending); } TEST_F(LatchUnsignaledDisabledTest, Flush_KeepInTheQueueDifferentApplyToken) { @@ -809,7 +748,6 @@ TEST_F(LatchUnsignaledDisabledTest, Flush_KeepInTheQueueDifferentApplyToken) { const sp<IBinder> kApplyToken2 = sp<BBinder>::make(); const auto kLayerId1 = 1; const auto kLayerId2 = 2; - const auto kExpectedTransactionsApplied = 1u; const auto kExpectedTransactionsPending = 1u; const auto unsignaledTransaction = @@ -826,7 +764,7 @@ TEST_F(LatchUnsignaledDisabledTest, Flush_KeepInTheQueueDifferentApplyToken) { fence(Fence::Status::Signaled), layer_state_t::eBufferChanged), }); - setTransactionStates({unsignaledTransaction, signaledTransaction}, kExpectedTransactionsApplied, + setTransactionStates({unsignaledTransaction, signaledTransaction}, kExpectedTransactionsPending); } @@ -835,7 +773,6 @@ TEST_F(LatchUnsignaledDisabledTest, Flush_KeepInTheQueueSameApplyToken) { IInterface::asBinder(TransactionCompletedListener::getIInstance()); const auto kLayerId1 = 1; const auto kLayerId2 = 2; - const auto kExpectedTransactionsApplied = 1u; const auto kExpectedTransactionsPending = 1u; const auto signaledTransaction = @@ -852,7 +789,7 @@ TEST_F(LatchUnsignaledDisabledTest, Flush_KeepInTheQueueSameApplyToken) { fence(Fence::Status::Unsignaled), layer_state_t::eBufferChanged), }); - setTransactionStates({signaledTransaction, unsignaledTransaction}, kExpectedTransactionsApplied, + setTransactionStates({signaledTransaction, unsignaledTransaction}, kExpectedTransactionsPending); } @@ -861,7 +798,6 @@ TEST_F(LatchUnsignaledDisabledTest, Flush_KeepInTheUnsignaledTheQueue) { IInterface::asBinder(TransactionCompletedListener::getIInstance()); const auto kLayerId1 = 1; const auto kLayerId2 = 2; - const auto kExpectedTransactionsApplied = 0u; const auto kExpectedTransactionsPending = 1u; const auto unsignaledTransaction = @@ -879,7 +815,7 @@ TEST_F(LatchUnsignaledDisabledTest, Flush_KeepInTheUnsignaledTheQueue) { layer_state_t::eBufferChanged), }); setTransactionStates({unsignaledTransaction, unsignaledTransaction2}, - kExpectedTransactionsApplied, kExpectedTransactionsPending); + kExpectedTransactionsPending); } class LatchUnsignaledAlwaysTest : public LatchUnsignaledTest { @@ -894,37 +830,32 @@ TEST_F(LatchUnsignaledAlwaysTest, Flush_RemovesSignaledFromTheQueue) { const sp<IBinder> kApplyToken = IInterface::asBinder(TransactionCompletedListener::getIInstance()); const auto kLayerId = 1; - const auto kExpectedTransactionsApplied = 1u; const auto kExpectedTransactionsPending = 0u; const auto signaledTransaction = createTransactionInfo(kApplyToken, {createComposerState(kLayerId, fence(Fence::Status::Signaled), layer_state_t::eBufferChanged)}); - setTransactionStates({signaledTransaction}, kExpectedTransactionsApplied, - kExpectedTransactionsPending); + setTransactionStates({signaledTransaction}, kExpectedTransactionsPending); } TEST_F(LatchUnsignaledAlwaysTest, Flush_RemovesFromTheQueue) { const sp<IBinder> kApplyToken = IInterface::asBinder(TransactionCompletedListener::getIInstance()); const auto kLayerId = 1; - const auto kExpectedTransactionsApplied = 1u; const auto kExpectedTransactionsPending = 0u; const auto unsignaledTransaction = createTransactionInfo(kApplyToken, {createComposerState(kLayerId, fence(Fence::Status::Unsignaled), layer_state_t::eBufferChanged)}); - setTransactionStates({unsignaledTransaction}, kExpectedTransactionsApplied, - kExpectedTransactionsPending); + setTransactionStates({unsignaledTransaction}, kExpectedTransactionsPending); } TEST_F(LatchUnsignaledAlwaysTest, Flush_RemovesFromTheQueueSameLayerId) { const sp<IBinder> kApplyToken = IInterface::asBinder(TransactionCompletedListener::getIInstance()); const auto kLayerId = 1; - const auto kExpectedTransactionsApplied = 1u; const auto kExpectedTransactionsPending = 0u; const auto mixedTransaction = @@ -933,8 +864,7 @@ TEST_F(LatchUnsignaledAlwaysTest, Flush_RemovesFromTheQueueSameLayerId) { layer_state_t::eBufferChanged), createComposerState(kLayerId, fence(Fence::Status::Signaled), layer_state_t::eBufferChanged)}); - setTransactionStates({mixedTransaction}, kExpectedTransactionsApplied, - kExpectedTransactionsPending); + setTransactionStates({mixedTransaction}, kExpectedTransactionsPending); } TEST_F(LatchUnsignaledAlwaysTest, Flush_RemovesFromTheQueueDifferentLayerId) { @@ -942,7 +872,6 @@ TEST_F(LatchUnsignaledAlwaysTest, Flush_RemovesFromTheQueueDifferentLayerId) { IInterface::asBinder(TransactionCompletedListener::getIInstance()); const auto kLayerId1 = 1; const auto kLayerId2 = 2; - const auto kExpectedTransactionsApplied = 1u; const auto kExpectedTransactionsPending = 0u; const auto mixedTransaction = @@ -951,8 +880,7 @@ TEST_F(LatchUnsignaledAlwaysTest, Flush_RemovesFromTheQueueDifferentLayerId) { layer_state_t::eBufferChanged), createComposerState(kLayerId2, fence(Fence::Status::Signaled), layer_state_t::eBufferChanged)}); - setTransactionStates({mixedTransaction}, kExpectedTransactionsApplied, - kExpectedTransactionsPending); + setTransactionStates({mixedTransaction}, kExpectedTransactionsPending); } TEST_F(LatchUnsignaledAlwaysTest, Flush_RemovesSignaledFromTheQueue_MultipleLayers) { @@ -960,7 +888,6 @@ TEST_F(LatchUnsignaledAlwaysTest, Flush_RemovesSignaledFromTheQueue_MultipleLaye IInterface::asBinder(TransactionCompletedListener::getIInstance()); const auto kLayerId1 = 1; const auto kLayerId2 = 2; - const auto kExpectedTransactionsApplied = 2u; const auto kExpectedTransactionsPending = 0u; const auto signaledTransaction = @@ -977,8 +904,7 @@ TEST_F(LatchUnsignaledAlwaysTest, Flush_RemovesSignaledFromTheQueue_MultipleLaye fence(Fence::Status::Signaled), layer_state_t::eBufferChanged), }); - setTransactionStates({signaledTransaction, signaledTransaction2}, kExpectedTransactionsApplied, - kExpectedTransactionsPending); + setTransactionStates({signaledTransaction, signaledTransaction2}, kExpectedTransactionsPending); } TEST_F(LatchUnsignaledAlwaysTest, Flush_RemovesFromTheQueueDifferentApplyToken) { @@ -987,7 +913,6 @@ TEST_F(LatchUnsignaledAlwaysTest, Flush_RemovesFromTheQueueDifferentApplyToken) const sp<IBinder> kApplyToken2 = sp<BBinder>::make(); const auto kLayerId1 = 1; const auto kLayerId2 = 2; - const auto kExpectedTransactionsApplied = 2u; const auto kExpectedTransactionsPending = 0u; const auto signaledTransaction = @@ -1004,7 +929,7 @@ TEST_F(LatchUnsignaledAlwaysTest, Flush_RemovesFromTheQueueDifferentApplyToken) fence(Fence::Status::Unsignaled), layer_state_t::eBufferChanged), }); - setTransactionStates({signaledTransaction, unsignaledTransaction}, kExpectedTransactionsApplied, + setTransactionStates({signaledTransaction, unsignaledTransaction}, kExpectedTransactionsPending); } @@ -1013,7 +938,6 @@ TEST_F(LatchUnsignaledAlwaysTest, Flush_RemovesUnsignaledFromTheQueueSameApplyTo IInterface::asBinder(TransactionCompletedListener::getIInstance()); const auto kLayerId1 = 1; const auto kLayerId2 = 2; - const auto kExpectedTransactionsApplied = 2u; const auto kExpectedTransactionsPending = 0u; const auto unsignaledTransaction = @@ -1030,7 +954,7 @@ TEST_F(LatchUnsignaledAlwaysTest, Flush_RemovesUnsignaledFromTheQueueSameApplyTo fence(Fence::Status::Signaled), layer_state_t::eBufferChanged), }); - setTransactionStates({unsignaledTransaction, signaledTransaction}, kExpectedTransactionsApplied, + setTransactionStates({unsignaledTransaction, signaledTransaction}, kExpectedTransactionsPending); } @@ -1040,7 +964,6 @@ TEST_F(LatchUnsignaledAlwaysTest, Flush_RemovesUnsignaledFromTheQueue) { const sp<IBinder> kApplyToken2 = sp<BBinder>::make(); const auto kLayerId1 = 1; const auto kLayerId2 = 2; - const auto kExpectedTransactionsApplied = 2u; const auto kExpectedTransactionsPending = 0u; const auto unsignaledTransaction = @@ -1058,14 +981,13 @@ TEST_F(LatchUnsignaledAlwaysTest, Flush_RemovesUnsignaledFromTheQueue) { layer_state_t::eBufferChanged), }); setTransactionStates({unsignaledTransaction, unsignaledTransaction2}, - kExpectedTransactionsApplied, kExpectedTransactionsPending); + kExpectedTransactionsPending); } TEST_F(LatchUnsignaledAlwaysTest, LatchUnsignaledWhenEarlyOffset) { const sp<IBinder> kApplyToken = IInterface::asBinder(TransactionCompletedListener::getIInstance()); const auto kLayerId = 1; - const auto kExpectedTransactionsApplied = 1u; const auto kExpectedTransactionsPending = 0u; const auto unsignaledTransaction = @@ -1079,8 +1001,7 @@ TEST_F(LatchUnsignaledAlwaysTest, LatchUnsignaledWhenEarlyOffset) { // Get VsyncModulator out of the default config static_cast<void>(mFlinger.mutableVsyncModulator()->onRefreshRateChangeInitiated()); - setTransactionStates({unsignaledTransaction}, kExpectedTransactionsApplied, - kExpectedTransactionsPending); + setTransactionStates({unsignaledTransaction}, kExpectedTransactionsPending); } } // namespace android |