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

Commit c3cb7291 authored by Lloyd Pique's avatar Lloyd Pique
Browse files

CE: Introduce CompositionEngine::dump()

Allow any CompositionEngine state to be dumped as part of
SurfaceFlinger's dump.

Test: atest libsurfaceflinger_unittest libcompositionengine_test
Test: go/wm-smoke
Bug: 121291683
Change-Id: I4b87ff912c767538f2d371c342f782e92c4e74e9
parent 01c77c1a
Loading
Loading
Loading
Loading
+3 −0
Original line number Original line Diff line number Diff line
@@ -66,6 +66,9 @@ public:


    // TODO(b/121291683): These will become private/internal
    // TODO(b/121291683): These will become private/internal
    virtual void preComposition(CompositionRefreshArgs&) = 0;
    virtual void preComposition(CompositionRefreshArgs&) = 0;

    // Debugging
    virtual void dump(std::string&) const = 0;
};
};


} // namespace compositionengine
} // namespace compositionengine
+3 −0
Original line number Original line Diff line number Diff line
@@ -45,6 +45,9 @@ public:


    void preComposition(CompositionRefreshArgs&) override;
    void preComposition(CompositionRefreshArgs&) override;


    // Debugging
    void dump(std::string&) const override;

    void updateLayerStateFromFE(CompositionRefreshArgs& args);
    void updateLayerStateFromFE(CompositionRefreshArgs& args);


    // Testing
    // Testing
+2 −0
Original line number Original line Diff line number Diff line
@@ -48,6 +48,8 @@ public:
    MOCK_METHOD1(updateCursorAsync, void(CompositionRefreshArgs&));
    MOCK_METHOD1(updateCursorAsync, void(CompositionRefreshArgs&));


    MOCK_METHOD1(preComposition, void(CompositionRefreshArgs&));
    MOCK_METHOD1(preComposition, void(CompositionRefreshArgs&));

    MOCK_CONST_METHOD1(dump, void(std::string&));
};
};


} // namespace android::compositionengine::mock
} // namespace android::compositionengine::mock
+4 −0
Original line number Original line Diff line number Diff line
@@ -130,6 +130,10 @@ void CompositionEngine::preComposition(CompositionRefreshArgs& args) {
    mNeedsAnotherUpdate = needsAnotherUpdate;
    mNeedsAnotherUpdate = needsAnotherUpdate;
}
}


void CompositionEngine::dump(std::string&) const {
    // The base class has no state to dump, but derived classes might.
}

void CompositionEngine::setNeedsAnotherUpdateForTest(bool value) {
void CompositionEngine::setNeedsAnotherUpdateForTest(bool value) {
    mNeedsAnotherUpdate = value;
    mNeedsAnotherUpdate = value;
}
}
+6 −0
Original line number Original line Diff line number Diff line
@@ -4211,6 +4211,12 @@ void SurfaceFlinger::dumpAllLocked(const DumpArgs& args, std::string& result) co
    }
    }
    result.append("\n");
    result.append("\n");


    /*
     * Dump CompositionEngine state
     */

    mCompositionEngine->dump(result);

    /*
    /*
     * Dump SurfaceFlinger global state
     * Dump SurfaceFlinger global state
     */
     */