From 1a7075f23520192dbf9e126ccc3562f7ddf5c64a Mon Sep 17 00:00:00 2001 From: Vishnu Nair Date: Tue, 26 May 2020 14:03:54 -0700 Subject: [PATCH] Avoid setting a barrier on layers that will not render frames Fixes an issue where a barrier is set on a layer that will not submit a buffer and transactions will get queued up causing the system to eventually watchdog. Fixes: 150578848 Test: Run manual repro steps in bug Test: go/wm-smoke Change-Id: Icba60e60fa9e62cca2fb3ff06d73f1975485a91d --- services/core/java/com/android/server/wm/WindowState.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index fd18e6f9c39ac..8888de4f582ef 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -5478,7 +5478,9 @@ class WindowState extends WindowContainer implements WindowManagerP } long getFrameNumber() { - return mFrameNumber; + // Return the frame number in which changes requested in this layout will be rendered or + // -1 if we do not expect the frame to be rendered. + return getFrameLw().isEmpty() ? -1 : mFrameNumber; } void setFrameNumber(long frameNumber) {