Merge "SurfaceView: Ensure we don't fill unused BLAST Transaction." into rvc-dev am: 0e22967d6c am: be835665a3

Change-Id: Ia90a88cf7c7bedb7d07904451190062df43ec3cb
This commit is contained in:
Rob Carr
2020-04-06 20:44:17 +00:00
committed by Automerger Merge Worker
2 changed files with 11 additions and 3 deletions

View File

@@ -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));

View File

@@ -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;
}
}