summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorMathias Agopian <mathias@google.com>2012-10-04 15:58:54 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-10-08 15:57:17 -0700
commitcb55857bbde34a06c19dde3db5064d1717a0173e (patch)
tree3556b41902f345adefe68f31da5a2f5c3be1572d /services
parent1b3aeb4844fe198c1fb61064d0cec3f5ac63f7d3 (diff)
downloadframeworks_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.cpp7
-rw-r--r--services/surfaceflinger/DisplayHardware/HWComposer.h3
-rw-r--r--services/surfaceflinger/SurfaceFlinger.cpp7
-rw-r--r--services/surfaceflinger/SurfaceFlinger.h4
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;