From 57c853f2302ff3bc69f26f34f61e5db3ec92bb02 Mon Sep 17 00:00:00 2001 From: Robert Carr Date: Tue, 2 Feb 2021 15:54:28 -0800 Subject: SurfaceView: Release BBQ where we release Surface This more closesly mirrors the timing of pre-BLAST behavior. There are also some concerns that we may not reach releaseSurfaces if our first call to tryReleaseSurface came through ViewRoot#doDie. Bug: 176691195 Test: Existing tests pass Change-Id: I211a3e80eab1e847a4d6ade47ff19cf131de8f39 --- core/java/android/view/SurfaceView.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'core/java/android/view/SurfaceView.java') diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java index f603ef7901c7..70ec2d42b59b 100644 --- a/core/java/android/view/SurfaceView.java +++ b/core/java/android/view/SurfaceView.java @@ -877,6 +877,10 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall synchronized (mSurfaceControlLock) { mSurface.release(); + if (mBlastBufferQueue != null) { + mBlastBufferQueue.destroy(); + mBlastBufferQueue = null; + } if (mRtHandlingPositionUpdates) { mRtReleaseSurfaces = true; @@ -901,10 +905,6 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall transaction.remove(mBlastSurfaceControl); mBlastSurfaceControl = null; } - if (mBlastBufferQueue != null) { - mBlastBufferQueue.destroy(); - mBlastBufferQueue = null; - } } private boolean performSurfaceTransaction(ViewRootImpl viewRoot, Translator translator, -- cgit v1.2.3