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

Commit f2dd8504 authored by Alec Mouri's avatar Alec Mouri Committed by Automerger Merge Worker
Browse files

Merge "Remove surface damage from planner LayerState" into sc-dev am: 98aba2d2

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/native/+/14189965

Change-Id: I7f9971e471f16d8f8e0449f05455868725a38849
parents 590826eb 98aba2d2
Loading
Loading
Loading
Loading
+3 −11
Original line number Diff line number Diff line
@@ -360,14 +360,6 @@ private:

    OutputLayerState<mat4, LayerStateField::ColorTransform> mColorTransform;

    using SurfaceDamageState = OutputLayerState<Region, LayerStateField::SurfaceDamage>;
    SurfaceDamageState
            mSurfaceDamage{[](auto layer) {
                               return layer->getLayerFE().getCompositionState()->surfaceDamage;
                           },
                           SurfaceDamageState::getRegionToStrings(),
                           SurfaceDamageState::getRegionEquals()};

    using CompositionTypeState = OutputLayerState<hardware::graphics::composer::hal::Composition,
                                                  LayerStateField::CompositionType>;
    CompositionTypeState
@@ -410,7 +402,7 @@ private:
                            return std::vector<std::string>{stream.str()};
                        }};

    static const constexpr size_t kNumNonUniqueFields = 16;
    static const constexpr size_t kNumNonUniqueFields = 15;

    std::array<StateInterface*, kNumNonUniqueFields> getNonUniqueFields() {
        std::array<const StateInterface*, kNumNonUniqueFields> constFields =
@@ -427,8 +419,8 @@ private:
        return {
                &mDisplayFrame,    &mSourceCrop,     &mZOrder,         &mBufferTransform,
                &mBlendMode,       &mAlpha,          &mLayerMetadata,  &mVisibleRegion,
                &mOutputDataspace, &mPixelFormat,    &mColorTransform, &mSurfaceDamage,
                &mCompositionType, &mSidebandStream, &mBuffer,         &mSolidColor,
                &mOutputDataspace, &mPixelFormat,    &mColorTransform, &mCompositionType,
                &mSidebandStream,  &mBuffer,         &mSolidColor,
        };
    }
};
+0 −1
Original line number Diff line number Diff line
@@ -161,7 +161,6 @@ bool operator==(const LayerState& lhs, const LayerState& rhs) {
            lhs.mVisibleRegion == rhs.mVisibleRegion &&
            lhs.mOutputDataspace == rhs.mOutputDataspace && lhs.mPixelFormat == rhs.mPixelFormat &&
            lhs.mColorTransform == rhs.mColorTransform &&
            lhs.mSurfaceDamage == rhs.mSurfaceDamage &&
            lhs.mCompositionType == rhs.mCompositionType &&
            lhs.mSidebandStream == rhs.mSidebandStream && lhs.mBuffer == rhs.mBuffer &&
            (lhs.mCompositionType.get() != hal::Composition::SOLID_COLOR ||
+0 −41
Original line number Diff line number Diff line
@@ -793,47 +793,6 @@ TEST_F(LayerStateTest, compareColorTransform) {
    EXPECT_TRUE(otherLayerState->compare(*mLayerState));
}

TEST_F(LayerStateTest, updateSurfaceDamage) {
    OutputLayerCompositionState outputLayerCompositionState;
    LayerFECompositionState layerFECompositionState;
    layerFECompositionState.surfaceDamage = sRegionOne;
    setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState,
                       layerFECompositionState);
    mLayerState = std::make_unique<LayerState>(&mOutputLayer);

    mock::OutputLayer newOutputLayer;
    mock::LayerFE newLayerFE;
    OutputLayerCompositionState outputLayerCompositionStateTwo;
    LayerFECompositionState layerFECompositionStateTwo;
    layerFECompositionStateTwo.surfaceDamage = sRegionTwo;
    setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionStateTwo,
                       layerFECompositionStateTwo);
    Flags<LayerStateField> updates = mLayerState->update(&newOutputLayer);
    EXPECT_EQ(Flags<LayerStateField>(LayerStateField::SurfaceDamage), updates);
}

TEST_F(LayerStateTest, compareSurfaceDamage) {
    OutputLayerCompositionState outputLayerCompositionState;
    LayerFECompositionState layerFECompositionState;
    layerFECompositionState.surfaceDamage = sRegionOne;
    setupMocksForLayer(mOutputLayer, mLayerFE, outputLayerCompositionState,
                       layerFECompositionState);
    mLayerState = std::make_unique<LayerState>(&mOutputLayer);
    mock::OutputLayer newOutputLayer;
    mock::LayerFE newLayerFE;
    OutputLayerCompositionState outputLayerCompositionStateTwo;
    LayerFECompositionState layerFECompositionStateTwo;
    layerFECompositionStateTwo.surfaceDamage = sRegionTwo;
    setupMocksForLayer(newOutputLayer, newLayerFE, outputLayerCompositionStateTwo,
                       layerFECompositionStateTwo);
    auto otherLayerState = std::make_unique<LayerState>(&newOutputLayer);

    verifyNonUniqueDifferingFields(*mLayerState, *otherLayerState, LayerStateField::SurfaceDamage);

    EXPECT_TRUE(mLayerState->compare(*otherLayerState));
    EXPECT_TRUE(otherLayerState->compare(*mLayerState));
}

TEST_F(LayerStateTest, updateSidebandStream) {
    OutputLayerCompositionState outputLayerCompositionState;
    LayerFECompositionState layerFECompositionState;