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

Commit fabe2265 authored by Cairn Overturf's avatar Cairn Overturf Committed by Android (Google) Code Review
Browse files

Merge "Revert "Don't force client composition when rounded corners are cached"" into main

parents 851a6d25 9abda97e
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -104,7 +104,7 @@ private:
    void detectDisallowedCompositionTypeChange(
    void detectDisallowedCompositionTypeChange(
            aidl::android::hardware::graphics::composer3::Composition from,
            aidl::android::hardware::graphics::composer3::Composition from,
            aidl::android::hardware::graphics::composer3::Composition to) const;
            aidl::android::hardware::graphics::composer3::Composition to) const;
    bool isClientCompositionForced(bool isPeekingThrough, bool isCached) const;
    bool isClientCompositionForced(bool isPeekingThrough) const;
    void updateLuts(const LayerFECompositionState&,
    void updateLuts(const LayerFECompositionState&,
                    const std::optional<std::vector<std::optional<LutProperties>>>& properties);
                    const std::optional<std::vector<std::optional<LutProperties>>>& properties);
};
};
+3 −7
Original line number Original line Diff line number Diff line
@@ -876,8 +876,7 @@ void OutputLayer::writeCompositionTypeToHWC(HWC2::Layer* hwcLayer,
                                            bool isPeekingThrough, bool skipLayer) {
                                            bool isPeekingThrough, bool skipLayer) {
    auto& outputDependentState = editState();
    auto& outputDependentState = editState();


    bool isCached = !skipLayer && outputDependentState.overrideInfo.buffer;
    if (isClientCompositionForced(isPeekingThrough)) {
    if (isClientCompositionForced(isPeekingThrough, isCached)) {
        // If we are forcing client composition, we need to tell the HWC
        // If we are forcing client composition, we need to tell the HWC
        requestedCompositionType = Composition::CLIENT;
        requestedCompositionType = Composition::CLIENT;
    }
    }
@@ -967,12 +966,9 @@ void OutputLayer::detectDisallowedCompositionTypeChange(Composition from, Compos
    }
    }
}
}


bool OutputLayer::isClientCompositionForced(bool isPeekingThrough, bool isCached) const {
bool OutputLayer::isClientCompositionForced(bool isPeekingThrough) const {
    // If this layer was flattened into a CachedSet then it is not necessary for
    // the GPU to compose it.
    bool requiresClientDrawnRoundedCorners = !isCached && getLayerFE().hasRoundedCorners();
    return getState().forceClientComposition ||
    return getState().forceClientComposition ||
            (!isPeekingThrough && requiresClientDrawnRoundedCorners);
            (!isPeekingThrough && getLayerFE().hasRoundedCorners());
}
}


void OutputLayer::applyDeviceCompositionTypeChange(Composition compositionType) {
void OutputLayer::applyDeviceCompositionTypeChange(Composition compositionType) {
+2 −2
Original line number Original line Diff line number Diff line
@@ -540,7 +540,7 @@ char LayerSnapshot::classifyCompositionForDebug(
        case Composition::INVALID:
        case Composition::INVALID:
            return 'i';
            return 'i';
        case Composition::SOLID_COLOR:
        case Composition::SOLID_COLOR:
            return 'e';
            return 'c';
        case Composition::CURSOR:
        case Composition::CURSOR:
            return 'u';
            return 'u';
        case Composition::SIDEBAND:
        case Composition::SIDEBAND:
@@ -548,7 +548,7 @@ char LayerSnapshot::classifyCompositionForDebug(
        case Composition::DISPLAY_DECORATION:
        case Composition::DISPLAY_DECORATION:
            return 'a';
            return 'a';
        case Composition::REFRESH_RATE_INDICATOR:
        case Composition::REFRESH_RATE_INDICATOR:
            return 'f';
            return 'r';
        case Composition::CLIENT:
        case Composition::CLIENT:
        case Composition::DEVICE:
        case Composition::DEVICE:
            break;
            break;