Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7c1e3865 authored by Dan Stoza's avatar Dan Stoza Committed by android-build-merger
Browse files

Merge "SF: Remove forced transaction on screenshot" into nyc-dev

am: 854071a3

* commit '854071a3':
  SF: Remove forced transaction on screenshot

Change-Id: I79297918957661befdec24345bdfff2720433188
parents b66ee0e7 854071a3
Loading
Loading
Loading
Loading
+0 −14
Original line number Diff line number Diff line
@@ -61,12 +61,6 @@ void MessageQueue::Handler::dispatchInvalidate() {
    }
}

void MessageQueue::Handler::dispatchTransaction() {
    if ((android_atomic_or(eventMaskTransaction, &mEventMask) & eventMaskTransaction) == 0) {
        mQueue.mLooper->sendMessage(this, Message(MessageQueue::TRANSACTION));
    }
}

void MessageQueue::Handler::handleMessage(const Message& message) {
    switch (message.what) {
        case INVALIDATE:
@@ -77,10 +71,6 @@ void MessageQueue::Handler::handleMessage(const Message& message) {
            android_atomic_and(~eventMaskRefresh, &mEventMask);
            mQueue.mFlinger->onMessageReceived(message.what);
            break;
        case TRANSACTION:
            android_atomic_and(~eventMaskTransaction, &mEventMask);
            mQueue.mFlinger->onMessageReceived(message.what);
            break;
    }
}

@@ -155,10 +145,6 @@ status_t MessageQueue::postMessage(
 */
#define INVALIDATE_ON_VSYNC 1

void MessageQueue::invalidateTransactionNow() {
    mHandler->dispatchTransaction();
}

void MessageQueue::invalidate() {
#if INVALIDATE_ON_VSYNC
    mEvents->requestNextVsync();
+0 −4
Original line number Diff line number Diff line
@@ -73,7 +73,6 @@ class MessageQueue {
        virtual void handleMessage(const Message& message);
        void dispatchRefresh();
        void dispatchInvalidate();
        void dispatchTransaction();
    };

    friend class Handler;
@@ -93,7 +92,6 @@ public:
    enum {
        INVALIDATE  = 0,
        REFRESH     = 1,
        TRANSACTION = 2
    };

    MessageQueue();
@@ -108,8 +106,6 @@ public:
    void invalidate();
    // sends REFRESH message at next VSYNC
    void refresh();
    // sends TRANSACTION message immediately
    void invalidateTransactionNow();
};

// ---------------------------------------------------------------------------
+0 −11
Original line number Diff line number Diff line
@@ -903,10 +903,6 @@ void SurfaceFlinger::setVsyncEnabled(int disp, int enabled) {
void SurfaceFlinger::onMessageReceived(int32_t what) {
    ATRACE_CALL();
    switch (what) {
        case MessageQueue::TRANSACTION: {
            handleMessageTransaction();
            break;
        }
        case MessageQueue::INVALIDATE: {
            bool refreshNeeded = handleMessageTransaction();
            refreshNeeded |= handleMessageInvalidate();
@@ -3283,13 +3279,6 @@ status_t SurfaceFlinger::captureScreen(const sp<IBinder>& display,
        }
    };

    // make sure to process transactions before screenshots -- a transaction
    // might already be pending but scheduled for VSYNC; this guarantees we
    // will handle it before the screenshot. When VSYNC finally arrives
    // the scheduled transaction will be a no-op. If no transactions are
    // scheduled at this time, this will end-up being a no-op as well.
    mEventQueue.invalidateTransactionNow();

    // this creates a "fake" BBinder which will serve as a "fake" remote
    // binder to receive the marshaled calls and forward them to the
    // real remote (a BpGraphicBufferProducer)
+0 −11
Original line number Diff line number Diff line
@@ -907,10 +907,6 @@ void SurfaceFlinger::eventControl(int disp, int event, int enabled) {
void SurfaceFlinger::onMessageReceived(int32_t what) {
    ATRACE_CALL();
    switch (what) {
        case MessageQueue::TRANSACTION: {
            handleMessageTransaction();
            break;
        }
        case MessageQueue::INVALIDATE: {
            bool refreshNeeded = handleMessageTransaction();
            refreshNeeded |= handleMessageInvalidate();
@@ -3297,13 +3293,6 @@ status_t SurfaceFlinger::captureScreen(const sp<IBinder>& display,
        }
    };

    // make sure to process transactions before screenshots -- a transaction
    // might already be pending but scheduled for VSYNC; this guarantees we
    // will handle it before the screenshot. When VSYNC finally arrives
    // the scheduled transaction will be a no-op. If no transactions are
    // scheduled at this time, this will end-up being a no-op as well.
    mEventQueue.invalidateTransactionNow();

    // this creates a "fake" BBinder which will serve as a "fake" remote
    // binder to receive the marshaled calls and forward them to the
    // real remote (a BpGraphicBufferProducer)