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 Diff line number Diff line
@@ -66,6 +66,9 @@ public:

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

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

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

    void preComposition(CompositionRefreshArgs&) override;

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

    void updateLayerStateFromFE(CompositionRefreshArgs& args);

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

    MOCK_METHOD1(preComposition, void(CompositionRefreshArgs&));

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

} // namespace android::compositionengine::mock
+4 −0
Original line number Diff line number Diff line
@@ -130,6 +130,10 @@ void CompositionEngine::preComposition(CompositionRefreshArgs& args) {
    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) {
    mNeedsAnotherUpdate = value;
}
+6 −0
Original line number Diff line number Diff line
@@ -4211,6 +4211,12 @@ void SurfaceFlinger::dumpAllLocked(const DumpArgs& args, std::string& result) co
    }
    result.append("\n");

    /*
     * Dump CompositionEngine state
     */

    mCompositionEngine->dump(result);

    /*
     * Dump SurfaceFlinger global state
     */