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

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

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

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

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

bool OutputLayer::isClientCompositionForced(bool isPeekingThrough) const {
bool OutputLayer::isClientCompositionForced(bool isPeekingThrough, bool isCached) 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 ||
            (!isPeekingThrough && getLayerFE().hasRoundedCorners());
            (!isPeekingThrough && requiresClientDrawnRoundedCorners);
}

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