diff options
| author | Michael Jurka <mikejurka@google.com> | 2012-03-28 17:22:29 +0200 |
|---|---|---|
| committer | Michael Jurka <mikejurka@google.com> | 2012-03-30 05:06:55 -0700 |
| commit | a3fabff98590d26f0c362cb09dc378fece66215c (patch) | |
| tree | 06574f65dd864672e7f80816db5b5a826a58624e /core/java/android | |
| parent | f9c1f9935b349fe1a3f27be4462026dd212f8b78 (diff) | |
| download | frameworks_base-a3fabff98590d26f0c362cb09dc378fece66215c.zip frameworks_base-a3fabff98590d26f0c362cb09dc378fece66215c.tar.gz frameworks_base-a3fabff98590d26f0c362cb09dc378fece66215c.tar.bz2 | |
Add frame counter to dumpGfxInfo
Change-Id: I016f706e32cbdbce014795d8fc537b15c389dc7a
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/view/HardwareRenderer.java | 20 | ||||
| -rw-r--r-- | core/java/android/view/WindowManagerImpl.java | 7 |
2 files changed, 22 insertions, 5 deletions
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 @@ public abstract class HardwareRenderer { * @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 @@ public abstract class HardwareRenderer { GL mGl; HardwareCanvas mCanvas; - int mFrameCount; + long mFrameCount; Paint mDebugPaint; static boolean sDirtyRegions; @@ -552,6 +559,11 @@ public abstract class HardwareRenderer { } } + @Override + long getFrameCount() { + return mFrameCount; + } + /** * Indicates whether this renderer instance can track and update dirty regions. */ @@ -1006,13 +1018,13 @@ public abstract class HardwareRenderer { 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 @@ public class WindowManagerImpl implements WindowManager { 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]; |
