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

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

Merge "Remove surface damage from planner LayerState" into sc-dev

parents b074b4f4 95595f7a
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;