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

Commit 24e1e94c authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Change mLayersWithQueuedFrames to be an unordered_set"

parents 4bc5fd20 5c9c960e
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -2055,7 +2055,7 @@ void SurfaceFlinger::onMessageRefresh() {
            refreshArgs.layers.push_back(layerFE);
    });
    refreshArgs.layersWithQueuedFrames.reserve(mLayersWithQueuedFrames.size());
    for (sp<Layer> layer : mLayersWithQueuedFrames) {
    for (auto layer : mLayersWithQueuedFrames) {
        if (auto layerFE = layer->getCompositionEngineLayerFE())
            refreshArgs.layersWithQueuedFrames.push_back(layerFE);
    }
@@ -2218,7 +2218,7 @@ void SurfaceFlinger::postComposition()
    ALOGV("postComposition");

    nsecs_t dequeueReadyTime = systemTime();
    for (auto& layer : mLayersWithQueuedFrames) {
    for (auto layer : mLayersWithQueuedFrames) {
        layer->releasePendingBuffer(dequeueReadyTime);
    }

@@ -3136,7 +3136,7 @@ bool SurfaceFlinger::handlePageFlip()
        if (layer->hasReadyFrame()) {
            frameQueued = true;
            if (layer->shouldPresentNow(expectedPresentTime)) {
                mLayersWithQueuedFrames.push_back(layer);
                mLayersWithQueuedFrames.emplace(layer);
            } else {
                ATRACE_NAME("!layer->shouldPresentNow()");
                layer->useEmptyDamage();
+5 −1
Original line number Diff line number Diff line
@@ -1080,7 +1080,11 @@ private:
    bool mInputInfoChanged = false;
    bool mGeometryInvalid = false;
    bool mAnimCompositionPending = false;
    std::vector<sp<Layer>> mLayersWithQueuedFrames;

    // Tracks layers that have pending frames which are candidates for being
    // latched. Because this contains a set of raw layer pointers, can only be
    // mutated on the main thread.
    std::unordered_set<Layer*> mLayersWithQueuedFrames;
    // Tracks layers that need to update a display's dirty region.
    std::vector<sp<Layer>> mLayersPendingRefresh;
    std::array<sp<Fence>, 2> mPreviousPresentFences = {Fence::NO_FENCE, Fence::NO_FENCE};