Loading services/core/java/com/android/server/wm/WindowManagerService.java +13 −0 Original line number Diff line number Diff line Loading @@ -11190,6 +11190,7 @@ public class WindowManagerService extends IWindowManager.Stub pw.println(" p[policy]: policy state"); pw.println(" a[animator]: animator state"); pw.println(" s[essions]: active sessions"); pw.println(" surfaces: active surfaces (debugging enabled only)"); pw.println(" d[isplays]: active display contents"); pw.println(" t[okens]: token list"); pw.println(" w[indows]: window list"); Loading Loading @@ -11229,6 +11230,11 @@ public class WindowManagerService extends IWindowManager.Stub dumpSessionsLocked(pw, true); } return; } else if ("surfaces".equals(cmd)) { synchronized(mWindowMap) { WindowStateAnimator.SurfaceTrace.dumpAllSurfaces(pw, null); } return; } else if ("displays".equals(cmd) || "d".equals(cmd)) { synchronized(mWindowMap) { dumpDisplayContentsLocked(pw, true); Loading Loading @@ -11284,6 +11290,13 @@ public class WindowManagerService extends IWindowManager.Stub if (dumpAll) { pw.println("-------------------------------------------------------------------------------"); } WindowStateAnimator.SurfaceTrace.dumpAllSurfaces(pw, dumpAll ? "-------------------------------------------------------------------------------" : null); pw.println(); if (dumpAll) { pw.println("-------------------------------------------------------------------------------"); } dumpDisplayContentsLocked(pw, dumpAll); pw.println(); if (dumpAll) { Loading services/core/java/com/android/server/wm/WindowStateAnimator.java +47 −13 Original line number Diff line number Diff line Loading @@ -536,6 +536,9 @@ class WindowStateAnimator { mSize.set(w, h); Slog.v(SURFACE_TAG, "ctor: " + this + ". Called by " + Debug.getCallers(3)); synchronized (sSurfaces) { sSurfaces.add(0, this); } } @Override Loading @@ -557,6 +560,7 @@ class WindowStateAnimator { } super.setLayer(zorder); synchronized (sSurfaces) { sSurfaces.remove(this); int i; for (i = sSurfaces.size() - 1; i >= 0; i--) { Loading @@ -567,6 +571,7 @@ class WindowStateAnimator { } sSurfaces.add(i + 1, this); } } @Override public void setPosition(float x, float y) { Loading Loading @@ -655,21 +660,50 @@ class WindowStateAnimator { public void destroy() { super.destroy(); Slog.v(SURFACE_TAG, "destroy: " + this + ". Called by " + Debug.getCallers(3)); synchronized (sSurfaces) { sSurfaces.remove(this); } } @Override public void release() { super.release(); Slog.v(SURFACE_TAG, "release: " + this + ". Called by " + Debug.getCallers(3)); synchronized (sSurfaces) { sSurfaces.remove(this); } } static void dumpAllSurfaces() { static void dumpAllSurfaces(PrintWriter pw, String header) { synchronized (sSurfaces) { final int N = sSurfaces.size(); if (N <= 0) { return; } if (header != null) { pw.println(header); } pw.println("WINDOW MANAGER SURFACES (dumpsys window surfaces)"); for (int i = 0; i < N; i++) { Slog.i(TAG, "SurfaceDump: " + sSurfaces.get(i)); SurfaceTrace s = sSurfaces.get(i); pw.print(" Surface #"); pw.print(i); pw.print(": #"); pw.print(Integer.toHexString(System.identityHashCode(s))); pw.print(" "); pw.println(s.mName); pw.print(" mLayerStack="); pw.print(s.mLayerStack); pw.print(" mLayer="); pw.println(s.mLayer); pw.print(" mShown="); pw.print(s.mShown); pw.print(" mAlpha="); pw.print(s.mSurfaceTraceAlpha); pw.print(" mIsOpaque="); pw.println(s.mIsOpaque); pw.print(" mPosition="); pw.print(s.mPosition.x); pw.print(","); pw.print(s.mPosition.y); pw.print(" mSize="); pw.print(s.mSize.x); pw.print("x"); pw.println(s.mSize.y); pw.print(" mCrop="); s.mWindowCrop.printShortString(pw); pw.println(); pw.print(" Transform: ("); pw.print(s.mDsdx); pw.print(", "); pw.print(s.mDtdx); pw.print(", "); pw.print(s.mDsdy); pw.print(", "); pw.print(s.mDtdy); pw.println(")"); } } } Loading Loading
services/core/java/com/android/server/wm/WindowManagerService.java +13 −0 Original line number Diff line number Diff line Loading @@ -11190,6 +11190,7 @@ public class WindowManagerService extends IWindowManager.Stub pw.println(" p[policy]: policy state"); pw.println(" a[animator]: animator state"); pw.println(" s[essions]: active sessions"); pw.println(" surfaces: active surfaces (debugging enabled only)"); pw.println(" d[isplays]: active display contents"); pw.println(" t[okens]: token list"); pw.println(" w[indows]: window list"); Loading Loading @@ -11229,6 +11230,11 @@ public class WindowManagerService extends IWindowManager.Stub dumpSessionsLocked(pw, true); } return; } else if ("surfaces".equals(cmd)) { synchronized(mWindowMap) { WindowStateAnimator.SurfaceTrace.dumpAllSurfaces(pw, null); } return; } else if ("displays".equals(cmd) || "d".equals(cmd)) { synchronized(mWindowMap) { dumpDisplayContentsLocked(pw, true); Loading Loading @@ -11284,6 +11290,13 @@ public class WindowManagerService extends IWindowManager.Stub if (dumpAll) { pw.println("-------------------------------------------------------------------------------"); } WindowStateAnimator.SurfaceTrace.dumpAllSurfaces(pw, dumpAll ? "-------------------------------------------------------------------------------" : null); pw.println(); if (dumpAll) { pw.println("-------------------------------------------------------------------------------"); } dumpDisplayContentsLocked(pw, dumpAll); pw.println(); if (dumpAll) { Loading
services/core/java/com/android/server/wm/WindowStateAnimator.java +47 −13 Original line number Diff line number Diff line Loading @@ -536,6 +536,9 @@ class WindowStateAnimator { mSize.set(w, h); Slog.v(SURFACE_TAG, "ctor: " + this + ". Called by " + Debug.getCallers(3)); synchronized (sSurfaces) { sSurfaces.add(0, this); } } @Override Loading @@ -557,6 +560,7 @@ class WindowStateAnimator { } super.setLayer(zorder); synchronized (sSurfaces) { sSurfaces.remove(this); int i; for (i = sSurfaces.size() - 1; i >= 0; i--) { Loading @@ -567,6 +571,7 @@ class WindowStateAnimator { } sSurfaces.add(i + 1, this); } } @Override public void setPosition(float x, float y) { Loading Loading @@ -655,21 +660,50 @@ class WindowStateAnimator { public void destroy() { super.destroy(); Slog.v(SURFACE_TAG, "destroy: " + this + ". Called by " + Debug.getCallers(3)); synchronized (sSurfaces) { sSurfaces.remove(this); } } @Override public void release() { super.release(); Slog.v(SURFACE_TAG, "release: " + this + ". Called by " + Debug.getCallers(3)); synchronized (sSurfaces) { sSurfaces.remove(this); } } static void dumpAllSurfaces() { static void dumpAllSurfaces(PrintWriter pw, String header) { synchronized (sSurfaces) { final int N = sSurfaces.size(); if (N <= 0) { return; } if (header != null) { pw.println(header); } pw.println("WINDOW MANAGER SURFACES (dumpsys window surfaces)"); for (int i = 0; i < N; i++) { Slog.i(TAG, "SurfaceDump: " + sSurfaces.get(i)); SurfaceTrace s = sSurfaces.get(i); pw.print(" Surface #"); pw.print(i); pw.print(": #"); pw.print(Integer.toHexString(System.identityHashCode(s))); pw.print(" "); pw.println(s.mName); pw.print(" mLayerStack="); pw.print(s.mLayerStack); pw.print(" mLayer="); pw.println(s.mLayer); pw.print(" mShown="); pw.print(s.mShown); pw.print(" mAlpha="); pw.print(s.mSurfaceTraceAlpha); pw.print(" mIsOpaque="); pw.println(s.mIsOpaque); pw.print(" mPosition="); pw.print(s.mPosition.x); pw.print(","); pw.print(s.mPosition.y); pw.print(" mSize="); pw.print(s.mSize.x); pw.print("x"); pw.println(s.mSize.y); pw.print(" mCrop="); s.mWindowCrop.printShortString(pw); pw.println(); pw.print(" Transform: ("); pw.print(s.mDsdx); pw.print(", "); pw.print(s.mDtdx); pw.print(", "); pw.print(s.mDsdy); pw.print(", "); pw.print(s.mDtdy); pw.println(")"); } } } Loading