diff options
| author | 2020-04-06 20:02:13 +0000 | |
|---|---|---|
| committer | 2020-04-06 20:02:13 +0000 | |
| commit | 0e22967d6ca9c7b8e219f88ecefb0c819fbaf911 (patch) | |
| tree | 41fe5945945dbe2fea51d090c8d85c2ee8bd35ae | |
| parent | 7309ac6092487fd30bafe1e629a133fec98ca290 (diff) | |
| parent | 92e08bf997bcd1459df4d2efe9fd51993908dd3e (diff) | |
Merge "SurfaceView: Ensure we don't fill unused BLAST Transaction." into rvc-dev
| -rw-r--r-- | core/java/android/view/SurfaceView.java | 6 | ||||
| -rw-r--r-- | core/java/android/view/ViewRootImpl.java | 8 |
2 files changed, 11 insertions, 3 deletions
diff --git a/core/java/android/view/SurfaceView.java b/core/java/android/view/SurfaceView.java index c89e0c9fc60e..b0981730c1eb 100644 --- a/core/java/android/view/SurfaceView.java +++ b/core/java/android/view/SurfaceView.java @@ -1241,7 +1241,7 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall private void applySurfaceTransforms(SurfaceControl surface, SurfaceControl.Transaction t, Rect position, long frameNumber) { final ViewRootImpl viewRoot = getViewRootImpl(); - if (frameNumber > 0 && viewRoot != null && !viewRoot.useBLAST()) { + if (frameNumber > 0 && viewRoot != null && !viewRoot.isDrawingToBLASTTransaction()) { t.deferTransactionUntil(surface, viewRoot.getRenderSurfaceControl(), frameNumber); } @@ -1258,7 +1258,7 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall private void setParentSpaceRectangle(Rect position, long frameNumber) { final ViewRootImpl viewRoot = getViewRootImpl(); - final boolean useBLAST = viewRoot.useBLAST(); + final boolean useBLAST = viewRoot.isDrawingToBLASTTransaction(); final SurfaceControl.Transaction t = useBLAST ? viewRoot.getBLASTSyncTransaction() : mRtTransaction; @@ -1319,7 +1319,7 @@ public class SurfaceView extends View implements ViewRootImpl.SurfaceChangedCall @Override public void positionLost(long frameNumber) { final ViewRootImpl viewRoot = getViewRootImpl(); - boolean useBLAST = viewRoot != null && viewRoot.useBLAST(); + boolean useBLAST = viewRoot != null && viewRoot.isDrawingToBLASTTransaction(); if (DEBUG) { Log.d(TAG, String.format("%d windowPositionLost, frameNr = %d", System.identityHashCode(this), frameNumber)); diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 2d309034e1c2..1e96a1c21ac3 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -9610,4 +9610,12 @@ public final class ViewRootImpl implements ViewParent, boolean useBLAST() { return mUseBLASTAdapter; } + + /** + * Returns true if we are about to or currently processing a draw directed + * in to a BLAST transaction. + */ + boolean isDrawingToBLASTTransaction() { + return mNextReportConsumeBLAST; + } } |