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

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

Merge "improve hwc dumpsys"

parents 21fc681a fb4d5d57
Loading
Loading
Loading
Loading
+16 −5
Original line number Diff line number Diff line
@@ -143,18 +143,29 @@ void HWComposer::dump(String8& result, char* buffer, size_t SIZE,
        snprintf(buffer, SIZE, "  numHwLayers=%u, flags=%08x\n",
                mList->numHwLayers, mList->flags);
        result.append(buffer);

        result.append(
                "    type   |   hints  |   flags  | tr | blend |  format  |     source rectangle      |      crop rectangle       name \n"
                "-----------+----------+----------+----+-------+----------+---------------------------+--------------------------------\n");
        //      "  ________ | ________ | ________ | __ | _____ | ________ | [_____,_____,_____,_____] | [_____,_____,_____,_____]
        for (size_t i=0 ; i<mList->numHwLayers ; i++) {
            const hwc_layer_t& l(mList->hwLayers[i]);
            snprintf(buffer, SIZE, "  %8s | %08x | %08x | %02x | %04x | [%5d,%5d,%5d,%5d] |  [%5d,%5d,%5d,%5d] %s\n",
            const sp<LayerBase> layer(visibleLayersSortedByZ[i]);
            int32_t format = -1;
            if (layer->getLayer() != NULL) {
                const sp<GraphicBuffer>& buffer(layer->getLayer()->getActiveBuffer());
                if (buffer != NULL) {
                    format = buffer->getPixelFormat();
                }
            }
            snprintf(buffer, SIZE,
                    "  %8s | %08x | %08x | %02x | %05x | %08x | [%5d,%5d,%5d,%5d] | [%5d,%5d,%5d,%5d] %s\n",
                    l.compositionType ? "OVERLAY" : "FB",
                    l.hints, l.flags, l.transform, l.blending,
                    l.hints, l.flags, l.transform, l.blending, format,
                    l.sourceCrop.left, l.sourceCrop.top, l.sourceCrop.right, l.sourceCrop.bottom,
                    l.displayFrame.left, l.displayFrame.top, l.displayFrame.right, l.displayFrame.bottom,
                    visibleLayersSortedByZ[i]->getName().string());
                    layer->getName().string());
            result.append(buffer);
        }

    }
    if (mHwc && mHwc->common.version >= 1 && mHwc->dump) {
        mHwc->dump(mHwc, buffer, SIZE);
+2 −0
Original line number Diff line number Diff line
@@ -73,12 +73,14 @@ public:
    virtual bool isSecure() const           { return mSecure; }
    virtual bool isProtected() const;
    virtual void onRemoved();
    virtual sp<Layer> getLayer() const { return const_cast<Layer*>(this); }

    // LayerBaseClient interface
    virtual wp<IBinder> getSurfaceTextureBinder() const;

    // only for debugging
    inline const sp<FreezeLock>&  getFreezeLock() const { return mFreezeLock; }
    inline const sp<GraphicBuffer>& getActiveBuffer() const { return mActiveBuffer; }

protected:
    virtual void onFirstRef();
+2 −0
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@ class Client;
class DisplayHardware;
class GraphicBuffer;
class GraphicPlane;
class Layer;
class LayerBaseClient;
class SurfaceFlinger;

@@ -105,6 +106,7 @@ public:
            void invalidate();

    virtual sp<LayerBaseClient> getLayerBaseClient() const { return 0; }
    virtual sp<Layer> getLayer() const { return 0; }

    virtual const char* getTypeId() const { return "LayerBase"; }

+1 −1
Original line number Diff line number Diff line
@@ -925,7 +925,7 @@ Region SurfaceFlinger::setupHardwareComposer(const Region& dirty)
            // what's happening here is tricky.
            // we want to clear all the layers with the CLEAR_FB flags
            // that are opaque.
            // however, since some GPU have are efficient at preserving
            // however, since some GPU are efficient at preserving
            // the backbuffer, we want to take advantage of that so we do the
            // clear only in the dirty region (other areas will be preserved
            // on those GPUs).