diff options
| -rw-r--r-- | AconfigFlags.bp | 15 | ||||
| -rw-r--r-- | core/java/com/android/internal/jank/FrameTracker.java | 7 | ||||
| -rw-r--r-- | core/java/com/android/internal/jank/flags.aconfig | 9 |
3 files changed, 30 insertions, 1 deletions
diff --git a/AconfigFlags.bp b/AconfigFlags.bp index 3c5686bd6d13..edb119e0afb1 100644 --- a/AconfigFlags.bp +++ b/AconfigFlags.bp @@ -100,6 +100,7 @@ aconfig_declarations_group { "framework-jobscheduler-job.flags-aconfig-java", "framework_graphics_flags_java_lib", "hwui_flags_java_lib", + "interaction_jank_monitor_flags_lib", "libcore_exported_aconfig_flags_lib", "libgui_flags_java_lib", "power_flags_lib", @@ -1565,3 +1566,17 @@ java_aconfig_library { aconfig_declarations: "dropbox_flags", defaults: ["framework-minus-apex-aconfig-java-defaults"], } + +// Zero Jank +aconfig_declarations { + name: "interaction_jank_monitor_flags", + package: "com.android.internal.jank", + container: "system", + srcs: ["core/java/com/android/internal/jank/flags.aconfig"], +} + +java_aconfig_library { + name: "interaction_jank_monitor_flags_lib", + aconfig_declarations: "interaction_jank_monitor_flags", + defaults: ["framework-minus-apex-aconfig-java-defaults"], +} diff --git a/core/java/com/android/internal/jank/FrameTracker.java b/core/java/com/android/internal/jank/FrameTracker.java index 2254e944c669..d474c6db4f02 100644 --- a/core/java/com/android/internal/jank/FrameTracker.java +++ b/core/java/com/android/internal/jank/FrameTracker.java @@ -158,12 +158,17 @@ public class FrameTracker implements HardwareRendererObserver.OnFrameMetricsAvai this.surfaceControlCallbackFired = true; this.jankType = jankStat.jankType; this.refreshRate = DisplayRefreshRate.getRefreshRate(jankStat.frameIntervalNs); + if (Flags.useSfFrameDuration()) { + this.totalDurationNanos = jankStat.actualAppFrameTimeNs; + } return this; } private JankInfo update(long totalDurationNanos, boolean isFirstFrame) { this.hwuiCallbackFired = true; - this.totalDurationNanos = totalDurationNanos; + if (!Flags.useSfFrameDuration()) { + this.totalDurationNanos = totalDurationNanos; + } this.isFirstFrame = isFirstFrame; return this; } diff --git a/core/java/com/android/internal/jank/flags.aconfig b/core/java/com/android/internal/jank/flags.aconfig new file mode 100644 index 000000000000..676bb70e7797 --- /dev/null +++ b/core/java/com/android/internal/jank/flags.aconfig @@ -0,0 +1,9 @@ +package: "com.android.internal.jank" +container: "system" + +flag { + name: "use_sf_frame_duration" + namespace: "android_platform_window_surfaces" + description: "Whether to get the frame duration from SurfaceFlinger, or HWUI" + bug: "354763298" +} |