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

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

Merge "added a few more commands to SF's dumpsys"

parents 6dc813c9 25e66fc3
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -553,8 +553,6 @@ void Layer::dump(String8& result, char* buffer, size_t SIZE) const

    result.append(buffer);

    LayerBase::dumpStats(result, buffer, SIZE);

    if (mSurfaceTexture != 0) {
        mSurfaceTexture->dump(result, "            ", buffer, SIZE);
    }
@@ -580,6 +578,12 @@ void Layer::dumpStats(String8& result, char* buffer, size_t SIZE) const
    result.append("\n");
}

void Layer::clearStats()
{
    LayerBaseClient::clearStats();
    memset(mFrameStats, 0, sizeof(mFrameStats));
}

uint32_t Layer::getEffectiveUsage(uint32_t usage) const
{
    // TODO: should we do something special if mSecure is set?
+1 −0
Original line number Diff line number Diff line
@@ -88,6 +88,7 @@ protected:
    virtual void onFirstRef();
    virtual void dump(String8& result, char* scratch, size_t size) const;
    virtual void dumpStats(String8& result, char* buffer, size_t SIZE) const;
    virtual void clearStats();

private:
    friend class SurfaceTextureLayer;
+5 −4
Original line number Diff line number Diff line
@@ -489,13 +489,14 @@ void LayerBase::dump(String8& result, char* buffer, size_t SIZE) const
    result.append(buffer);
}

void LayerBase::shortDump(String8& result, char* scratch, size_t size) const
{
void LayerBase::shortDump(String8& result, char* scratch, size_t size) const {
    LayerBase::dump(result, scratch, size);
}

void LayerBase::dumpStats(String8& result, char* scratch, size_t SIZE) const
{
void LayerBase::dumpStats(String8& result, char* scratch, size_t SIZE) const {
}

void LayerBase::clearStats() {
}

// ---------------------------------------------------------------------------
+1 −0
Original line number Diff line number Diff line
@@ -212,6 +212,7 @@ public:
    virtual void dump(String8& result, char* scratch, size_t size) const;
    virtual void shortDump(String8& result, char* scratch, size_t size) const;
    virtual void dumpStats(String8& result, char* buffer, size_t SIZE) const;
    virtual void clearStats();


    enum { // flags for doTransaction()
+48 −2
Original line number Diff line number Diff line
@@ -1486,12 +1486,27 @@ status_t SurfaceFlinger::dump(int fd, const Vector<String16>& args)

        bool dumpAll = true;
        size_t index = 0;
        if (args.size()) {
        size_t numArgs = args.size();
        if (numArgs) {
            dumpAll = false;
            if (args[index] == String16("--latency")) {

            if ((index < numArgs) &&
                    (args[index] == String16("--list"))) {
                index++;
                listLayersLocked(args, index, result, buffer, SIZE);
            }

            if ((index < numArgs) &&
                    (args[index] == String16("--latency"))) {
                index++;
                dumpStatsLocked(args, index, result, buffer, SIZE);
            }

            if ((index < numArgs) &&
                    (args[index] == String16("--latency-clear"))) {
                index++;
                clearStatsLocked(args, index, result, buffer, SIZE);
            }
        }

        if (dumpAll) {
@@ -1506,6 +1521,18 @@ status_t SurfaceFlinger::dump(int fd, const Vector<String16>& args)
    return NO_ERROR;
}

void SurfaceFlinger::listLayersLocked(const Vector<String16>& args, size_t& index,
        String8& result, char* buffer, size_t SIZE) const
{
    const LayerVector& currentLayers = mCurrentState.layersSortedByZ;
    const size_t count = currentLayers.size();
    for (size_t i=0 ; i<count ; i++) {
        const sp<LayerBase>& layer(currentLayers[i]);
        snprintf(buffer, SIZE, "%s\n", layer->getName().string());
        result.append(buffer);
    }
}

void SurfaceFlinger::dumpStatsLocked(const Vector<String16>& args, size_t& index,
        String8& result, char* buffer, size_t SIZE) const
{
@@ -1529,6 +1556,25 @@ void SurfaceFlinger::dumpStatsLocked(const Vector<String16>& args, size_t& index
    }
}

void SurfaceFlinger::clearStatsLocked(const Vector<String16>& args, size_t& index,
        String8& result, char* buffer, size_t SIZE) const
{
    String8 name;
    if (index < args.size()) {
        name = String8(args[index]);
        index++;
    }

    const LayerVector& currentLayers = mCurrentState.layersSortedByZ;
    const size_t count = currentLayers.size();
    for (size_t i=0 ; i<count ; i++) {
        const sp<LayerBase>& layer(currentLayers[i]);
        if (name.isEmpty() || (name == layer->getName())) {
            layer->clearStats();
        }
    }
}

void SurfaceFlinger::dumpAllLocked(
        String8& result, char* buffer, size_t SIZE) const
{
Loading