Loading services/surfaceflinger/DisplayHardware/HWComposer.cpp +16 −5 Original line number Diff line number Diff line Loading @@ -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); Loading services/surfaceflinger/Layer.h +2 −0 Original line number Diff line number Diff line Loading @@ -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(); Loading services/surfaceflinger/LayerBase.h +2 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ class Client; class DisplayHardware; class GraphicBuffer; class GraphicPlane; class Layer; class LayerBaseClient; class SurfaceFlinger; Loading Loading @@ -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"; } Loading services/surfaceflinger/SurfaceFlinger.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -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). Loading Loading
services/surfaceflinger/DisplayHardware/HWComposer.cpp +16 −5 Original line number Diff line number Diff line Loading @@ -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); Loading
services/surfaceflinger/Layer.h +2 −0 Original line number Diff line number Diff line Loading @@ -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(); Loading
services/surfaceflinger/LayerBase.h +2 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ class Client; class DisplayHardware; class GraphicBuffer; class GraphicPlane; class Layer; class LayerBaseClient; class SurfaceFlinger; Loading Loading @@ -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"; } Loading
services/surfaceflinger/SurfaceFlinger.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -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). Loading