From 2bc43dcaa8c58478d7c7005d26cd11536436a2f4 Mon Sep 17 00:00:00 2001 From: Adithya Srinivasan Date: Mon, 19 Oct 2020 10:51:03 -0700 Subject: [PATCH] Plumb pid to Layer Metadata during Layer creation For shared timeline visualization, the pid of the process owning the layer is needed to show the information in the respective process tracks. This change adds pid to the layer metadata that is passed around during the creation of a layer. Bug: 170911969 Test: pid section of `adb shell dumpsys SurfaceFlinger --frametimeline -` Change-Id: Ibd16bf7740d0c1be07cdbd300a1741cfcb6d2ad8 --- core/java/android/view/SurfaceControl.java | 6 ++++++ .../java/com/android/server/wm/WindowSurfaceController.java | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/core/java/android/view/SurfaceControl.java b/core/java/android/view/SurfaceControl.java index bbdd7d339507e..e9e119738cc54 100644 --- a/core/java/android/view/SurfaceControl.java +++ b/core/java/android/view/SurfaceControl.java @@ -545,6 +545,12 @@ public final class SurfaceControl implements Parcelable { */ public static final int METADATA_ACCESSIBILITY_ID = 5; + /** + * owner PID. + * @hide + */ + public static final int METADATA_OWNER_PID = 6; + /** * A wrapper around HardwareBuffer that contains extra information about how to * interpret the screenshot HardwareBuffer. diff --git a/services/core/java/com/android/server/wm/WindowSurfaceController.java b/services/core/java/com/android/server/wm/WindowSurfaceController.java index feecda79b6d70..51bcc663a452b 100644 --- a/services/core/java/com/android/server/wm/WindowSurfaceController.java +++ b/services/core/java/com/android/server/wm/WindowSurfaceController.java @@ -17,7 +17,7 @@ package com.android.server.wm; import static android.os.Trace.TRACE_TAG_WINDOW_MANAGER; -import static android.view.Surface.SCALING_MODE_SCALE_TO_WINDOW; +import static android.view.SurfaceControl.METADATA_OWNER_PID; import static android.view.SurfaceControl.METADATA_OWNER_UID; import static android.view.SurfaceControl.METADATA_WINDOW_TYPE; @@ -103,6 +103,7 @@ class WindowSurfaceController { .setFlags(flags) .setMetadata(METADATA_WINDOW_TYPE, windowType) .setMetadata(METADATA_OWNER_UID, ownerUid) + .setMetadata(METADATA_OWNER_PID, mWindowSession.mPid) .setCallsite("WindowSurfaceController"); final boolean useBLAST = mService.mUseBLAST && ((win.getAttrs().privateFlags &