handle surfaces posts independently from composition
surfaceflinger will now handle each surface post as soon as possible and handle the composition itself at VSYNC time as usual. Change-Id: I6b1ae33fd56062d86e5419ebab8def0ca5803fbf
This commit is contained in:
parent
ea0c6c9396
commit
562f4b2c1e
@ -133,8 +133,7 @@ status_t MessageQueue::postMessage(
|
||||
}
|
||||
|
||||
void MessageQueue::invalidate() {
|
||||
// mHandler->signalInvalidate();
|
||||
mEvents->requestNextVsync();
|
||||
mHandler->signalInvalidate();
|
||||
}
|
||||
|
||||
void MessageQueue::refresh() {
|
||||
|
@ -407,8 +407,7 @@ void SurfaceFlinger::onMessageReceived(int32_t what)
|
||||
{
|
||||
ATRACE_CALL();
|
||||
switch (what) {
|
||||
case MessageQueue::REFRESH: {
|
||||
// case MessageQueue::INVALIDATE: {
|
||||
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);
|
||||
@ -419,20 +418,16 @@ 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();
|
||||
|
Loading…
Reference in New Issue
Block a user