Loading services/surfaceflinger/SurfaceFlinger.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -3718,6 +3718,8 @@ void SurfaceFlinger::setPowerModeInternal(const sp<DisplayDevice>& display, int if (currentMode == HWC_POWER_MODE_OFF) { // Turn on the display // TODO: @vhau temp fix only! See b/141111965 mTransactionCompletedThread.clearAllPending(); getHwComposer().setPowerMode(*displayId, mode); if (display->isPrimary() && mode != HWC_POWER_MODE_DOZE_SUSPEND) { setVsyncEnabledInHWC(*displayId, mHWCVsyncPendingState); Loading services/surfaceflinger/TransactionCompletedThread.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -189,6 +189,15 @@ status_t TransactionCompletedThread::finalizePendingCallbackHandles( return NO_ERROR; } void TransactionCompletedThread::clearAllPending() { std::lock_guard lock(mMutex); if (!mRunning) { return; } mPendingTransactions.clear(); mConditionVariable.notify_all(); } status_t TransactionCompletedThread::registerUnpresentedCallbackHandle( const sp<CallbackHandle>& handle) { std::lock_guard lock(mMutex); Loading services/surfaceflinger/TransactionCompletedThread.h +2 −0 Original line number Diff line number Diff line Loading @@ -70,6 +70,8 @@ public: // Notifies the TransactionCompletedThread that a pending CallbackHandle has been presented. status_t finalizePendingCallbackHandles(const std::deque<sp<CallbackHandle>>& handles); void clearAllPending(); // Adds the Transaction CallbackHandle from a layer that does not need to be relatched and // presented this frame. status_t registerUnpresentedCallbackHandle(const sp<CallbackHandle>& handle); Loading Loading
services/surfaceflinger/SurfaceFlinger.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -3718,6 +3718,8 @@ void SurfaceFlinger::setPowerModeInternal(const sp<DisplayDevice>& display, int if (currentMode == HWC_POWER_MODE_OFF) { // Turn on the display // TODO: @vhau temp fix only! See b/141111965 mTransactionCompletedThread.clearAllPending(); getHwComposer().setPowerMode(*displayId, mode); if (display->isPrimary() && mode != HWC_POWER_MODE_DOZE_SUSPEND) { setVsyncEnabledInHWC(*displayId, mHWCVsyncPendingState); Loading
services/surfaceflinger/TransactionCompletedThread.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -189,6 +189,15 @@ status_t TransactionCompletedThread::finalizePendingCallbackHandles( return NO_ERROR; } void TransactionCompletedThread::clearAllPending() { std::lock_guard lock(mMutex); if (!mRunning) { return; } mPendingTransactions.clear(); mConditionVariable.notify_all(); } status_t TransactionCompletedThread::registerUnpresentedCallbackHandle( const sp<CallbackHandle>& handle) { std::lock_guard lock(mMutex); Loading
services/surfaceflinger/TransactionCompletedThread.h +2 −0 Original line number Diff line number Diff line Loading @@ -70,6 +70,8 @@ public: // Notifies the TransactionCompletedThread that a pending CallbackHandle has been presented. status_t finalizePendingCallbackHandles(const std::deque<sp<CallbackHandle>>& handles); void clearAllPending(); // Adds the Transaction CallbackHandle from a layer that does not need to be relatched and // presented this frame. status_t registerUnpresentedCallbackHandle(const sp<CallbackHandle>& handle); Loading