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

Commit dcf174f4 authored by Huihong Luo's avatar Huihong Luo Committed by Android (Google) Code Review
Browse files

Merge "Avoid duplicate rendering of the same cached override buffer" into sc-dev

parents 624a957c 91ac3b55
Loading
Loading
Loading
Loading
+9 −2
Original line number Original line Diff line number Diff line
@@ -1104,6 +1104,7 @@ std::vector<LayerFE::LayerSettings> Output::generateClientCompositionRequests(
    Region stubRegion;
    Region stubRegion;


    bool disableBlurs = false;
    bool disableBlurs = false;
    sp<GraphicBuffer> previousOverrideBuffer = nullptr;


    for (auto* layer : getOutputLayersOrderedByZ()) {
    for (auto* layer : getOutputLayersOrderedByZ()) {
        const auto& layerState = layer->getState();
        const auto& layerState = layer->getState();
@@ -1153,8 +1154,14 @@ std::vector<LayerFE::LayerSettings> Output::generateClientCompositionRequests(


            std::vector<LayerFE::LayerSettings> results;
            std::vector<LayerFE::LayerSettings> results;
            if (layer->getState().overrideInfo.buffer != nullptr) {
            if (layer->getState().overrideInfo.buffer != nullptr) {
                if (layer->getState().overrideInfo.buffer != previousOverrideBuffer) {
                    results = layer->getOverrideCompositionList();
                    results = layer->getOverrideCompositionList();
                    previousOverrideBuffer = layer->getState().overrideInfo.buffer;
                    ALOGV("Replacing [%s] with override in RE", layer->getLayerFE().getDebugName());
                    ALOGV("Replacing [%s] with override in RE", layer->getLayerFE().getDebugName());
                } else {
                    ALOGV("Skipping redundant override buffer for [%s] in RE",
                          layer->getLayerFE().getDebugName());
                }
            } else {
            } else {
                results = layerFE.prepareClientCompositionList(targetSettings);
                results = layerFE.prepareClientCompositionList(targetSettings);
                if (realContentIsVisible && !results.empty()) {
                if (realContentIsVisible && !results.empty()) {