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

Commit e7b8c835 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Don't blur too many layers" into udc-dev am: a4a64fc9 am: 8e6858f2

parents b8407c21 8e6858f2
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -157,6 +157,7 @@ public:
        // only has a value if there's something needing it, like when a TrustedPresentationListener
        // is set
        std::optional<Region> aboveCoveredLayersExcludingOverlays;
        int32_t aboveBlurRequests = 0;
    };

    virtual ~Output();
+1 −0
Original line number Diff line number Diff line
@@ -160,6 +160,7 @@ private:
    void dirtyEntireOutput();
    void updateCompositionStateForBorder(const compositionengine::CompositionRefreshArgs&);
    compositionengine::OutputLayer* findLayerRequestingBackgroundComposition() const;
    void sanitizeOutputLayers() const;
    void finishPrepareFrame();
    ui::Dataspace getBestDataspace(ui::Dataspace*, bool*) const;
    compositionengine::Output::ColorProfile pickColorProfile(
+3 −0
Original line number Diff line number Diff line
@@ -100,6 +100,9 @@ struct OutputLayerCompositionState {
    // order to save power.
    Region outputSpaceBlockingRegionHint;

    // ignore blur requests if there's just too many on top of this layer
    bool ignoreBlur{false};

    // Overrides the buffer, acquire fence, and display frame stored in LayerFECompositionState
    struct {
        std::shared_ptr<renderengine::ExternalTexture> buffer = nullptr;
+1 −0
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ public:
        const std::string& getName() const { return mState->getName(); }
        int32_t getBackgroundBlurRadius() const { return mState->getBackgroundBlurRadius(); }
        Rect getDisplayFrame() const { return mState->getDisplayFrame(); }
        bool hasBlurBehind() const { return mState->hasBlurBehind(); }
        const Region& getVisibleRegion() const { return mState->getVisibleRegion(); }
        const sp<GraphicBuffer>& getBuffer() const {
            return mState->getOutputLayer()->getLayerFE().getCompositionState()->buffer;
+8 −3
Original line number Diff line number Diff line
@@ -74,6 +74,7 @@ enum class LayerStateField : uint32_t {
    BlurRegions           = 1u << 18,
    HasProtectedContent   = 1u << 19,
    CachingHint           = 1u << 20,
    BlursDisabled         = 1u << 21,
};
// clang-format on

@@ -234,7 +235,8 @@ public:
    Rect getDisplayFrame() const { return mDisplayFrame.get(); }
    const Region& getVisibleRegion() const { return mVisibleRegion.get(); }
    bool hasBlurBehind() const {
        return mBackgroundBlurRadius.get() > 0 || !mBlurRegions.get().empty();
        return (mBackgroundBlurRadius.get() > 0 || !mBlurRegions.get().empty()) &&
                !mIsBlursDisabled.get();
    }
    int32_t getBackgroundBlurRadius() const { return mBackgroundBlurRadius.get(); }
    aidl::android::hardware::graphics::composer3::Composition getCompositionType() const {
@@ -502,7 +504,10 @@ private:
                             return std::vector<std::string>{toString(cachingHint)};
                         }};

    static const constexpr size_t kNumNonUniqueFields = 19;
    OutputLayerState<bool, LayerStateField::BlursDisabled> mIsBlursDisabled{
            [](auto layer) { return layer->getState().ignoreBlur; }};

    static const constexpr size_t kNumNonUniqueFields = 20;

    std::array<StateInterface*, kNumNonUniqueFields> getNonUniqueFields() {
        std::array<const StateInterface*, kNumNonUniqueFields> constFields =
@@ -520,7 +525,7 @@ private:
                &mAlpha,        &mLayerMetadata,  &mVisibleRegion,        &mOutputDataspace,
                &mPixelFormat,  &mColorTransform, &mCompositionType,      &mSidebandStream,
                &mBuffer,       &mSolidColor,     &mBackgroundBlurRadius, &mBlurRegions,
                &mFrameNumber,  &mIsProtected,    &mCachingHint};
                &mFrameNumber,  &mIsProtected,    &mCachingHint,          &mIsBlursDisabled};
    }
};

Loading