From 543db32125c004dca7d406a3498db6f87da01641 Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Fri, 19 Jun 2020 00:49:51 +0200 Subject: Pass in callsite of SurfaceControl constructor explicitly (1/3) Creating a new Throwable (and filling in the stack trace) can take up to 150us. Since we do this on the critical path when sending over SurfaceControl via binder multiple times, this is too much. Instead, add an option to pass in callsite manually. Bug: 159056748 Change-Id: I46c339c15a07192d61c4c546e46f260684a47120 Exempt-From-Owner-Approval: Large scale refactor --- core/java/android/view/WindowlessWindowManager.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'core/java/android/view/WindowlessWindowManager.java') diff --git a/core/java/android/view/WindowlessWindowManager.java b/core/java/android/view/WindowlessWindowManager.java index 7bdc8f162614..060311ec3da8 100644 --- a/core/java/android/view/WindowlessWindowManager.java +++ b/core/java/android/view/WindowlessWindowManager.java @@ -137,7 +137,8 @@ public class WindowlessWindowManager implements IWindowSession { .setParent(mRootSurface) .setFormat(attrs.format) .setBufferSize(getSurfaceWidth(attrs), getSurfaceHeight(attrs)) - .setName(attrs.getTitle().toString()); + .setName(attrs.getTitle().toString()) + .setCallsite("WindowlessWindowManager.addToDisplay"); final SurfaceControl sc = b.build(); if (((attrs.inputFeatures & @@ -249,7 +250,7 @@ public class WindowlessWindowManager implements IWindowSession { if (viewFlags == View.VISIBLE) { t.setBufferSize(sc, getSurfaceWidth(attrs), getSurfaceHeight(attrs)) .setOpaque(sc, isOpaque(attrs)).show(sc).apply(); - outSurfaceControl.copyFrom(sc); + outSurfaceControl.copyFrom(sc, "WindowlessWindowManager.relayout"); } else { t.hide(sc).apply(); outSurfaceControl.release(); -- cgit v1.2.3