diff options
author | Mathias Agopian <mathias@google.com> | 2012-10-04 15:58:54 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-10-08 15:57:17 -0700 |
commit | cb55857bbde34a06c19dde3db5064d1717a0173e (patch) | |
tree | 3556b41902f345adefe68f31da5a2f5c3be1572d /services | |
parent | 1b3aeb4844fe198c1fb61064d0cec3f5ac63f7d3 (diff) | |
download | frameworks_native-cb55857bbde34a06c19dde3db5064d1717a0173e.zip frameworks_native-cb55857bbde34a06c19dde3db5064d1717a0173e.tar.gz frameworks_native-cb55857bbde34a06c19dde3db5064d1717a0173e.tar.bz2 |
fix dumpsys Layer name when using multiple displays
Bug: 7288401
Change-Id: I14beeef58fac5270cef3b611e18c163060efe6c3
Diffstat (limited to 'services')
-rw-r--r-- | services/surfaceflinger/DisplayHardware/HWComposer.cpp | 7 | ||||
-rw-r--r-- | services/surfaceflinger/DisplayHardware/HWComposer.h | 3 | ||||
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 7 | ||||
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.h | 4 |
4 files changed, 16 insertions, 5 deletions
diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.cpp b/services/surfaceflinger/DisplayHardware/HWComposer.cpp index dd9a762..be4af51 100644 --- a/services/surfaceflinger/DisplayHardware/HWComposer.cpp +++ b/services/surfaceflinger/DisplayHardware/HWComposer.cpp @@ -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) { diff --git a/services/surfaceflinger/DisplayHardware/HWComposer.h b/services/surfaceflinger/DisplayHardware/HWComposer.h index 269e147..a78ffac 100644 --- a/services/surfaceflinger/DisplayHardware/HWComposer.h +++ b/services/surfaceflinger/DisplayHardware/HWComposer.h @@ -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(); diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp index 1103175..8367417 100644 --- a/services/surfaceflinger/SurfaceFlinger.cpp +++ b/services/surfaceflinger/SurfaceFlinger.cpp @@ -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 = diff --git a/services/surfaceflinger/SurfaceFlinger.h b/services/surfaceflinger/SurfaceFlinger.h index 5bb3703..6d36719 100644 --- a/services/surfaceflinger/SurfaceFlinger.h +++ b/services/surfaceflinger/SurfaceFlinger.h @@ -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; |