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

Commit cb55857b authored by Mathias Agopian's avatar Mathias Agopian Committed by Android (Google) Code Review
Browse files

fix dumpsys Layer name when using multiple displays

Bug: 7288401
Change-Id: I14beeef58fac5270cef3b611e18c163060efe6c3
parent 1b3aeb48
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -901,14 +901,16 @@ HWComposer::LayerListIterator HWComposer::end(int32_t id) {
    return getLayerIterator(id, numLayers);
}

void HWComposer::dump(String8& result, char* buffer, size_t SIZE,
        const Vector< sp<LayerBase> >& visibleLayersSortedByZ) const {
void HWComposer::dump(String8& result, char* buffer, size_t SIZE) const {
    if (mHwc) {
        result.appendFormat("Hardware Composer state (version %8x):\n", hwcApiVersion(mHwc));
        result.appendFormat("  mDebugForceFakeVSync=%d\n", mDebugForceFakeVSync);
        for (size_t i=0 ; i<mNumDisplays ; i++) {
            const DisplayData& disp(mDisplayData[i]);

            const Vector< sp<LayerBase> >& visibleLayersSortedByZ =
                    mFlinger->getLayerSortedByZForHwcDisplay(i);

            if (disp.connected) {
                result.appendFormat(
                        "  Display[%d] : %ux%u, xdpi=%f, ydpi=%f, refresh=%lld\n",
@@ -928,6 +930,7 @@ void HWComposer::dump(String8& result, char* buffer, size_t SIZE,
                    const hwc_layer_1_t&l = disp.list->hwLayers[i];
                    int32_t format = -1;
                    String8 name("unknown");

                    if (i < visibleLayersSortedByZ.size()) {
                        const sp<LayerBase>& layer(visibleLayersSortedByZ[i]);
                        if (layer->getLayer() != NULL) {
+1 −2
Original line number Diff line number Diff line
@@ -258,8 +258,7 @@ public:
    friend class VSyncThread;

    // for debugging ----------------------------------------------------------
    void dump(String8& out, char* scratch, size_t SIZE,
            const Vector< sp<LayerBase> >& visibleLayersSortedByZ) const;
    void dump(String8& out, char* scratch, size_t SIZE) const;

private:
    void loadHwcModule();
+6 −1
Original line number Diff line number Diff line
@@ -2333,7 +2333,7 @@ void SurfaceFlinger::dumpAllLocked(
            hwc.initCheck()==NO_ERROR ? "present" : "not present",
                    (mDebugDisableHWC || mDebugRegion) ? "disabled" : "enabled");
    result.append(buffer);
    hwc.dump(result, buffer, SIZE, hw->getVisibleLayersSortedByZ());
    hwc.dump(result, buffer, SIZE);

    /*
     * Dump gralloc state
@@ -2342,6 +2342,11 @@ void SurfaceFlinger::dumpAllLocked(
    alloc.dump(result);
}

const Vector< sp<LayerBase> >&
SurfaceFlinger::getLayerSortedByZForHwcDisplay(int disp) {
    return getDisplayDevice( getBuiltInDisplay(disp) )->getVisibleLayersSortedByZ();
}

bool SurfaceFlinger::startDdmConnection()
{
    void* libddmconnection_dso =
+4 −0
Original line number Diff line number Diff line
@@ -130,6 +130,10 @@ public:
    // TODO: this should be made accessible only to MessageQueue
    void onMessageReceived(int32_t what);

    // for debugging only
    // TODO: this should be made accessible only to HWComposer
    const Vector< sp<LayerBase> >& getLayerSortedByZForHwcDisplay(int disp);

private:
    friend class Client;
    friend class DisplayEventConnection;