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

Commit ec281c79 authored by Anton Ivanov's avatar Anton Ivanov Committed by Android (Google) Code Review
Browse files

Merge "Add TransactionBarriers to QueuedTransactionState." into main

parents a6c30105 cbe8b6ce
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@
#include <common/FlagManager.h>
#include <ftl/flags.h>
#include <gui/LayerState.h>
#include <gui/TransactionState.h>
#include <system/window.h>

namespace android {
@@ -62,7 +63,8 @@ struct QueuedTransactionState {
                           std::vector<ListenerCallbacks> listenerCallbacks, int originPid,
                           int originUid, uint64_t transactionId,
                           std::vector<uint64_t> mergedTransactionIds,
                           std::vector<gui::EarlyWakeupInfo> earlyWakeupInfos)
                           std::vector<gui::EarlyWakeupInfo> earlyWakeupInfos,
                           std::vector<gui::TransactionBarrier> transactionBarriers)
          : frameTimelineInfo(frameTimelineInfo),
            states(std::move(composerStates)),
            displays(std::move(displayStates)),
@@ -79,7 +81,8 @@ struct QueuedTransactionState {
            originUid(originUid),
            id(transactionId),
            mergedTransactionIds(std::move(mergedTransactionIds)),
            earlyWakeupInfos(std::move(earlyWakeupInfos)) {}
            earlyWakeupInfos(std::move(earlyWakeupInfos)),
            transactionBarriers(std::move(transactionBarriers)) {}

    // Invokes `void(const layer_state_t&)` visitor for matching layers.
    template <typename Visitor>
@@ -147,6 +150,7 @@ struct QueuedTransactionState {
    bool sentFenceTimeoutWarning = false;
    std::vector<uint64_t> mergedTransactionIds;
    std::vector<gui::EarlyWakeupInfo> earlyWakeupInfos;
    std::vector<gui::TransactionBarrier> transactionBarriers;
    ftl::Flags<adpf::Workload> workloadHint;
};

+18 −19
Original line number Diff line number Diff line
@@ -5214,8 +5214,7 @@ status_t SurfaceFlinger::setTransactionState(TransactionState&& transactionState
        }
    }

    QueuedTransactionState state{
            transactionState.mFrameTimelineInfo,
    QueuedTransactionState state{transactionState.mFrameTimelineInfo,
                                 std::move(resolvedStates),
                                 std::move(transactionState.mDisplayStates),
                                 flags,
@@ -5232,7 +5231,7 @@ status_t SurfaceFlinger::setTransactionState(TransactionState&& transactionState
                                 transactionState.getId(),
                                 transactionState.mMergedTransactionIds,
                                 transactionState.mEarlyWakeupInfos,
    };
                                 std::move(transactionState.mBarriers)};
    state.workloadHint = queuedWorkload;

    if (mTransactionTracing) {
+2 −1
Original line number Diff line number Diff line
@@ -432,7 +432,8 @@ public:
                                     static_cast<int>(getuid()),
                                     transaction.transactionState.getId(),
                                     transaction.transactionState.mMergedTransactionIds,
                                     transaction.transactionState.mEarlyWakeupInfos);
                                     transaction.transactionState.mEarlyWakeupInfos,
                                     transaction.transactionState.mBarriers);
            mFlinger.setTransactionStateInternal(transactionState);
        }
        mFlinger.flushTransactionQueues();