summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Rob Carr <racarr@google.com> 2020-04-06 20:02:13 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2020-04-06 20:02:13 +0000
commit0e22967d6ca9c7b8e219f88ecefb0c819fbaf911 (patch)
tree41fe5945945dbe2fea51d090c8d85c2ee8bd35ae
parent7309ac6092487fd30bafe1e629a133fec98ca290 (diff)
parent92e08bf997bcd1459df4d2efe9fd51993908dd3e (diff)
Merge "SurfaceView: Ensure we don't fill unused BLAST Transaction." into rvc-dev
-rw-r--r--core/java/android/view/SurfaceView.java6
-rw-r--r--core/java/android/view/ViewRootImpl.java8
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;
+ }
}