diff --git a/services/surfaceflinger/MessageQueue.cpp b/services/surfaceflinger/MessageQueue.cpp index 1ff3567f4..290fff469 100644 --- a/services/surfaceflinger/MessageQueue.cpp +++ b/services/surfaceflinger/MessageQueue.cpp @@ -133,7 +133,8 @@ status_t MessageQueue::postMessage( } void MessageQueue::invalidate() { - mHandler->signalInvalidate(); +// mHandler->signalInvalidate(); + mEvents->requestNextVsync(); } void MessageQueue::refresh() { diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index c68f5c163..ce6c4a060 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -407,7 +407,8 @@ void SurfaceFlinger::onMessageReceived(int32_t what) { ATRACE_CALL(); switch (what) { - case MessageQueue::INVALIDATE: { + case MessageQueue::REFRESH: { +// case MessageQueue::INVALIDATE: { // if we're in a global transaction, don't do anything. const uint32_t mask = eTransactionNeeded | eTraversalNeeded; uint32_t transactionFlags = peekTransactionFlags(mask); @@ -418,16 +419,20 @@ void SurfaceFlinger::onMessageReceived(int32_t what) // post surfaces (if needed) handlePageFlip(); - signalRefresh(); - - } break; - - case MessageQueue::REFRESH: { +// signalRefresh(); +// +// } break; +// +// case MessageQueue::REFRESH: { handleRefresh(); const DisplayHardware& hw(graphicPlane(0).displayHardware()); +// if (mDirtyRegion.isEmpty()) { +// return; +// } + if (CC_UNLIKELY(mHwWorkListDirty)) { // build the h/w work list handleWorkList();