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

Commit 2559ee88 authored by Alec Mouri's avatar Alec Mouri Committed by Android (Google) Code Review
Browse files

Merge "Don't blur too many layers" into main

parents b6c8f0db fbcb9ae5
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -159,6 +159,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
@@ -179,6 +179,7 @@ protected:
private:
    void dirtyEntireOutput();
    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
@@ -105,6 +105,9 @@ struct OutputLayerCompositionState {
    // The picture profile for this layer.
    PictureProfileHandle pictureProfileHandle;

    // 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;
+13 −7
Original line number Diff line number Diff line
@@ -75,6 +75,7 @@ enum class LayerStateField : uint32_t {
    HasProtectedContent   = 1u << 19,
    CachingHint           = 1u << 20,
    DimmingEnabled        = 1u << 21,
    BlursDisabled         = 1u << 22,
};
// clang-format on

@@ -236,7 +237,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 {
@@ -508,7 +510,10 @@ private:
    OutputLayerState<bool, LayerStateField::DimmingEnabled> mIsDimmingEnabled{
            [](auto layer) { return layer->getLayerFE().getCompositionState()->dimmingEnabled; }};

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

    static const constexpr size_t kNumNonUniqueFields = 21;

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

Loading