Loading services/surfaceflinger/SurfaceFlinger.cpp +11 −3 Original line number Original line Diff line number Diff line Loading @@ -3694,6 +3694,15 @@ bool SurfaceFlinger::stopTransactionProcessing( return false; return false; } } int SurfaceFlinger::flushUnsignaledPendingTransactionQueues( std::vector<TransactionState>& transactions, std::unordered_map<sp<IBinder>, uint64_t, SpHash<IBinder>>& bufferLayersReadyToPresent, std::unordered_set<sp<IBinder>, SpHash<IBinder>>& applyTokensWithUnsignaledTransactions) { return flushPendingTransactionQueues(transactions, bufferLayersReadyToPresent, applyTokensWithUnsignaledTransactions, /*tryApplyUnsignaled*/ true); } int SurfaceFlinger::flushPendingTransactionQueues( int SurfaceFlinger::flushPendingTransactionQueues( std::vector<TransactionState>& transactions, std::vector<TransactionState>& transactions, std::unordered_map<sp<IBinder>, uint64_t, SpHash<IBinder>>& bufferLayersReadyToPresent, std::unordered_map<sp<IBinder>, uint64_t, SpHash<IBinder>>& bufferLayersReadyToPresent, Loading Loading @@ -3848,9 +3857,8 @@ bool SurfaceFlinger::flushTransactionQueues(int64_t vsyncId) { // If we are allowing latch unsignaled of some form, now it's the time to go over the // If we are allowing latch unsignaled of some form, now it's the time to go over the // transactions that were not applied and try to apply them unsignaled. // transactions that were not applied and try to apply them unsignaled. if (enableLatchUnsignaledConfig != LatchUnsignaledConfig::Disabled) { if (enableLatchUnsignaledConfig != LatchUnsignaledConfig::Disabled) { flushPendingTransactionQueues(transactions, bufferLayersReadyToPresent, flushUnsignaledPendingTransactionQueues(transactions, bufferLayersReadyToPresent, applyTokensWithUnsignaledTransactions, applyTokensWithUnsignaledTransactions); /*tryApplyUnsignaled*/ true); } } return applyTransactions(transactions, vsyncId); return applyTransactions(transactions, vsyncId); Loading services/surfaceflinger/SurfaceFlinger.h +6 −0 Original line number Original line Diff line number Diff line Loading @@ -771,6 +771,12 @@ private: std::unordered_set<sp<IBinder>, SpHash<IBinder>>& applyTokensWithUnsignaledTransactions, std::unordered_set<sp<IBinder>, SpHash<IBinder>>& applyTokensWithUnsignaledTransactions, bool tryApplyUnsignaled) REQUIRES(mStateLock, mQueueLock); bool tryApplyUnsignaled) REQUIRES(mStateLock, mQueueLock); int flushUnsignaledPendingTransactionQueues( std::vector<TransactionState>& transactions, std::unordered_map<sp<IBinder>, uint64_t, SpHash<IBinder>>& bufferLayersReadyToPresent, std::unordered_set<sp<IBinder>, SpHash<IBinder>>& applyTokensWithUnsignaledTransactions) REQUIRES(mStateLock, mQueueLock); uint32_t setClientStateLocked(const FrameTimelineInfo&, ComposerState&, uint32_t setClientStateLocked(const FrameTimelineInfo&, ComposerState&, int64_t desiredPresentTime, bool isAutoTimestamp, int64_t desiredPresentTime, bool isAutoTimestamp, int64_t postTime, uint32_t permissions) REQUIRES(mStateLock); int64_t postTime, uint32_t permissions) REQUIRES(mStateLock); Loading Loading
services/surfaceflinger/SurfaceFlinger.cpp +11 −3 Original line number Original line Diff line number Diff line Loading @@ -3694,6 +3694,15 @@ bool SurfaceFlinger::stopTransactionProcessing( return false; return false; } } int SurfaceFlinger::flushUnsignaledPendingTransactionQueues( std::vector<TransactionState>& transactions, std::unordered_map<sp<IBinder>, uint64_t, SpHash<IBinder>>& bufferLayersReadyToPresent, std::unordered_set<sp<IBinder>, SpHash<IBinder>>& applyTokensWithUnsignaledTransactions) { return flushPendingTransactionQueues(transactions, bufferLayersReadyToPresent, applyTokensWithUnsignaledTransactions, /*tryApplyUnsignaled*/ true); } int SurfaceFlinger::flushPendingTransactionQueues( int SurfaceFlinger::flushPendingTransactionQueues( std::vector<TransactionState>& transactions, std::vector<TransactionState>& transactions, std::unordered_map<sp<IBinder>, uint64_t, SpHash<IBinder>>& bufferLayersReadyToPresent, std::unordered_map<sp<IBinder>, uint64_t, SpHash<IBinder>>& bufferLayersReadyToPresent, Loading Loading @@ -3848,9 +3857,8 @@ bool SurfaceFlinger::flushTransactionQueues(int64_t vsyncId) { // If we are allowing latch unsignaled of some form, now it's the time to go over the // If we are allowing latch unsignaled of some form, now it's the time to go over the // transactions that were not applied and try to apply them unsignaled. // transactions that were not applied and try to apply them unsignaled. if (enableLatchUnsignaledConfig != LatchUnsignaledConfig::Disabled) { if (enableLatchUnsignaledConfig != LatchUnsignaledConfig::Disabled) { flushPendingTransactionQueues(transactions, bufferLayersReadyToPresent, flushUnsignaledPendingTransactionQueues(transactions, bufferLayersReadyToPresent, applyTokensWithUnsignaledTransactions, applyTokensWithUnsignaledTransactions); /*tryApplyUnsignaled*/ true); } } return applyTransactions(transactions, vsyncId); return applyTransactions(transactions, vsyncId); Loading
services/surfaceflinger/SurfaceFlinger.h +6 −0 Original line number Original line Diff line number Diff line Loading @@ -771,6 +771,12 @@ private: std::unordered_set<sp<IBinder>, SpHash<IBinder>>& applyTokensWithUnsignaledTransactions, std::unordered_set<sp<IBinder>, SpHash<IBinder>>& applyTokensWithUnsignaledTransactions, bool tryApplyUnsignaled) REQUIRES(mStateLock, mQueueLock); bool tryApplyUnsignaled) REQUIRES(mStateLock, mQueueLock); int flushUnsignaledPendingTransactionQueues( std::vector<TransactionState>& transactions, std::unordered_map<sp<IBinder>, uint64_t, SpHash<IBinder>>& bufferLayersReadyToPresent, std::unordered_set<sp<IBinder>, SpHash<IBinder>>& applyTokensWithUnsignaledTransactions) REQUIRES(mStateLock, mQueueLock); uint32_t setClientStateLocked(const FrameTimelineInfo&, ComposerState&, uint32_t setClientStateLocked(const FrameTimelineInfo&, ComposerState&, int64_t desiredPresentTime, bool isAutoTimestamp, int64_t desiredPresentTime, bool isAutoTimestamp, int64_t postTime, uint32_t permissions) REQUIRES(mStateLock); int64_t postTime, uint32_t permissions) REQUIRES(mStateLock); Loading