Loading Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -150,6 +150,7 @@ filegroup { // etc. ":framework-javastream-protos", ":statslog-framework-java-gen", // FrameworkStatsLog.java ":statslog-hwui-java-gen", // HwuiStatsLog.java ":audio_policy_configuration_V7_0", ], } Loading core/java/android/view/ViewRootImpl.java +32 −0 Original line number Diff line number Diff line Loading @@ -284,6 +284,7 @@ import com.android.internal.view.BaseSurfaceHolder; import com.android.internal.view.RootViewSurfaceTaker; import com.android.internal.view.SurfaceCallbackHelper; import com.android.modules.expresslog.Counter; import com.android.os.coregraphics.HwuiStatsLog; import libcore.io.IoUtils; Loading Loading @@ -1228,6 +1229,8 @@ public final class ViewRootImpl implements ViewParent, // The latest input event from the gesture that was used to resolve the pointer icon. private MotionEvent mPointerIconEvent = null; private @ActivityInfo.ColorMode int mCurrentColorMode = ActivityInfo.COLOR_MODE_DEFAULT; private long mColorModeLastSetMillis = -1; public ViewRootImpl(Context context, Display display) { this(context, display, WindowManagerGlobal.getWindowSession(), new WindowLayout()); Loading Loading @@ -2646,6 +2649,7 @@ public final class ViewRootImpl implements ViewParent, mFirstFramePresentedTimeNs = -1; } } logColorMode(mCurrentColorMode, true); } Loading Loading @@ -6341,6 +6345,7 @@ public final class ViewRootImpl implements ViewParent, if (mAttachInfo.mThreadedRenderer == null) { return; } boolean isHdr = colorMode == ActivityInfo.COLOR_MODE_HDR || colorMode == ActivityInfo.COLOR_MODE_HDR10; if (isHdr && !mDisplay.isHdrSdrRatioAvailable()) { Loading @@ -6353,6 +6358,9 @@ public final class ViewRootImpl implements ViewParent, && !getConfiguration().isScreenWideColorGamut()) { colorMode = ActivityInfo.COLOR_MODE_DEFAULT; } logColorMode(colorMode, false); float automaticRatio = mAttachInfo.mThreadedRenderer.setColorMode(colorMode); if (desiredRatio == 0 || desiredRatio > automaticRatio) { desiredRatio = automaticRatio; Loading Loading @@ -10005,6 +10013,7 @@ public final class ViewRootImpl implements ViewParent, mAttachInfo.mThreadedRenderer = null; mAttachInfo.mHardwareAccelerated = false; logColorMode(mCurrentColorMode, true); } } Loading Loading @@ -13346,4 +13355,27 @@ public final class ViewRootImpl implements ViewParent, mInfrequentUpdateCount = 0; } } private void logColorMode(@ActivityInfo.ColorMode int colorMode, boolean windowStopped) { if (mColorModeLastSetMillis == -1 && windowStopped) { Log.d(TAG, "Skipping stats log for color mode"); return; } long currentTimeMillis = System.currentTimeMillis(); if (windowStopped) { HwuiStatsLog.write(HwuiStatsLog.HARDWARE_RENDERER_EVENT, Process.myUid(), currentTimeMillis - mColorModeLastSetMillis, mCurrentColorMode); mColorModeLastSetMillis = -1; } else { if (mColorModeLastSetMillis > 0) { HwuiStatsLog.write(HwuiStatsLog.HARDWARE_RENDERER_EVENT, Process.myUid(), currentTimeMillis - mColorModeLastSetMillis, mCurrentColorMode); } mColorModeLastSetMillis = currentTimeMillis; } mCurrentColorMode = colorMode; } } libs/hwui/Android.bp +7 −0 Original line number Diff line number Diff line Loading @@ -501,6 +501,13 @@ genrule { ], } genrule { name: "statslog-hwui-java-gen", tools: ["stats-log-api-gen"], cmd: "$(location stats-log-api-gen) --java $(out) --module hwui --javaPackage com.android.os.coregraphics --javaClass HwuiStatsLog", out: ["com/android/os/coregraphics/HwuiStatsLog.java"], } // ------------------------ // library // ------------------------ Loading Loading
Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -150,6 +150,7 @@ filegroup { // etc. ":framework-javastream-protos", ":statslog-framework-java-gen", // FrameworkStatsLog.java ":statslog-hwui-java-gen", // HwuiStatsLog.java ":audio_policy_configuration_V7_0", ], } Loading
core/java/android/view/ViewRootImpl.java +32 −0 Original line number Diff line number Diff line Loading @@ -284,6 +284,7 @@ import com.android.internal.view.BaseSurfaceHolder; import com.android.internal.view.RootViewSurfaceTaker; import com.android.internal.view.SurfaceCallbackHelper; import com.android.modules.expresslog.Counter; import com.android.os.coregraphics.HwuiStatsLog; import libcore.io.IoUtils; Loading Loading @@ -1228,6 +1229,8 @@ public final class ViewRootImpl implements ViewParent, // The latest input event from the gesture that was used to resolve the pointer icon. private MotionEvent mPointerIconEvent = null; private @ActivityInfo.ColorMode int mCurrentColorMode = ActivityInfo.COLOR_MODE_DEFAULT; private long mColorModeLastSetMillis = -1; public ViewRootImpl(Context context, Display display) { this(context, display, WindowManagerGlobal.getWindowSession(), new WindowLayout()); Loading Loading @@ -2646,6 +2649,7 @@ public final class ViewRootImpl implements ViewParent, mFirstFramePresentedTimeNs = -1; } } logColorMode(mCurrentColorMode, true); } Loading Loading @@ -6341,6 +6345,7 @@ public final class ViewRootImpl implements ViewParent, if (mAttachInfo.mThreadedRenderer == null) { return; } boolean isHdr = colorMode == ActivityInfo.COLOR_MODE_HDR || colorMode == ActivityInfo.COLOR_MODE_HDR10; if (isHdr && !mDisplay.isHdrSdrRatioAvailable()) { Loading @@ -6353,6 +6358,9 @@ public final class ViewRootImpl implements ViewParent, && !getConfiguration().isScreenWideColorGamut()) { colorMode = ActivityInfo.COLOR_MODE_DEFAULT; } logColorMode(colorMode, false); float automaticRatio = mAttachInfo.mThreadedRenderer.setColorMode(colorMode); if (desiredRatio == 0 || desiredRatio > automaticRatio) { desiredRatio = automaticRatio; Loading Loading @@ -10005,6 +10013,7 @@ public final class ViewRootImpl implements ViewParent, mAttachInfo.mThreadedRenderer = null; mAttachInfo.mHardwareAccelerated = false; logColorMode(mCurrentColorMode, true); } } Loading Loading @@ -13346,4 +13355,27 @@ public final class ViewRootImpl implements ViewParent, mInfrequentUpdateCount = 0; } } private void logColorMode(@ActivityInfo.ColorMode int colorMode, boolean windowStopped) { if (mColorModeLastSetMillis == -1 && windowStopped) { Log.d(TAG, "Skipping stats log for color mode"); return; } long currentTimeMillis = System.currentTimeMillis(); if (windowStopped) { HwuiStatsLog.write(HwuiStatsLog.HARDWARE_RENDERER_EVENT, Process.myUid(), currentTimeMillis - mColorModeLastSetMillis, mCurrentColorMode); mColorModeLastSetMillis = -1; } else { if (mColorModeLastSetMillis > 0) { HwuiStatsLog.write(HwuiStatsLog.HARDWARE_RENDERER_EVENT, Process.myUid(), currentTimeMillis - mColorModeLastSetMillis, mCurrentColorMode); } mColorModeLastSetMillis = currentTimeMillis; } mCurrentColorMode = colorMode; } }
libs/hwui/Android.bp +7 −0 Original line number Diff line number Diff line Loading @@ -501,6 +501,13 @@ genrule { ], } genrule { name: "statslog-hwui-java-gen", tools: ["stats-log-api-gen"], cmd: "$(location stats-log-api-gen) --java $(out) --module hwui --javaPackage com.android.os.coregraphics --javaClass HwuiStatsLog", out: ["com/android/os/coregraphics/HwuiStatsLog.java"], } // ------------------------ // library // ------------------------ Loading