Add frame counter to dumpGfxInfo
Change-Id: I016f706e32cbdbce014795d8fc537b15c389dc7a
diff --git a/core/java/android/view/HardwareRenderer.java b/core/java/android/view/HardwareRenderer.java
index d40043f..f251f36 100644
--- a/core/java/android/view/HardwareRenderer.java
+++ b/core/java/android/view/HardwareRenderer.java
@@ -259,7 +259,14 @@
* @param pw
*/
abstract void dumpGfxInfo(PrintWriter pw);
-
+
+ /**
+ * Outputs the total number of frames rendered (used for fps calculations)
+ *
+ * @return the number of frames rendered
+ */
+ abstract long getFrameCount();
+
/**
* Sets the directory to use as a persistent storage for hardware rendering
* resources.
@@ -475,7 +482,7 @@
GL mGl;
HardwareCanvas mCanvas;
- int mFrameCount;
+ long mFrameCount;
Paint mDebugPaint;
static boolean sDirtyRegions;
@@ -552,6 +559,11 @@
}
}
+ @Override
+ long getFrameCount() {
+ return mFrameCount;
+ }
+
/**
* Indicates whether this renderer instance can track and update dirty regions.
*/
@@ -1006,13 +1018,13 @@
callbacks.onHardwarePostDraw(canvas);
canvas.restoreToCount(saveCount);
view.mRecreateDisplayList = false;
-
+ mFrameCount++;
if (mDebugDirtyRegions) {
if (mDebugPaint == null) {
mDebugPaint = new Paint();
mDebugPaint.setColor(0x7fff0000);
}
- if (dirty != null && (mFrameCount++ & 1) == 0) {
+ if (dirty != null && (mFrameCount & 1) == 0) {
canvas.drawRect(dirty, mDebugPaint);
}
}
diff --git a/core/java/android/view/WindowManagerImpl.java b/core/java/android/view/WindowManagerImpl.java
index f2ee9f9..a45a87e 100644
--- a/core/java/android/view/WindowManagerImpl.java
+++ b/core/java/android/view/WindowManagerImpl.java
@@ -510,8 +510,13 @@
String name = root.getClass().getName() + '@' +
Integer.toHexString(hashCode());
- pw.printf(" %s: %d views, %.2f kB (display lists)\n",
+ pw.printf(" %s: %d views, %.2f kB (display lists)",
name, info[0], info[1] / 1024.0f);
+ HardwareRenderer renderer = root.getView().mAttachInfo.mHardwareRenderer;
+ if (renderer != null) {
+ pw.printf(", %d frames rendered", renderer.getFrameCount());
+ }
+ pw.printf("\n");
viewsCount += info[0];
displayListsSize += info[1];
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java
index 9635b33..cba9236 100644
--- a/services/java/com/android/server/wm/WindowManagerService.java
+++ b/services/java/com/android/server/wm/WindowManagerService.java
@@ -149,7 +149,7 @@
implements Watchdog.Monitor, WindowManagerPolicy.WindowManagerFuncs {
static final String TAG = "WindowManager";
static final boolean DEBUG = false;
- static final boolean DEBUG_ADD_REMOVE = false;
+ static final boolean DEBUG_ADD_REMOVE = true;
static final boolean DEBUG_FOCUS = false;
static final boolean DEBUG_ANIM = false;
static final boolean DEBUG_LAYOUT = false;
@@ -158,7 +158,7 @@
static final boolean DEBUG_INPUT = false;
static final boolean DEBUG_INPUT_METHOD = false;
static final boolean DEBUG_VISIBILITY = false;
- static final boolean DEBUG_WINDOW_MOVEMENT = false;
+ static final boolean DEBUG_WINDOW_MOVEMENT = true;
static final boolean DEBUG_TOKEN_MOVEMENT = false;
static final boolean DEBUG_ORIENTATION = false;
static final boolean DEBUG_APP_ORIENTATION = false;