diff options
| author | 2023-10-27 13:52:35 +0000 | |
|---|---|---|
| committer | 2023-10-27 13:52:35 +0000 | |
| commit | 82516899d89a26e7a45696592b5fb37f387e0b83 (patch) | |
| tree | d9dff9adbe2454d4713324f0016dcd20db0bd492 | |
| parent | 304fa942b40c7e987b24704584bc9b5856dd313d (diff) | |
| parent | b81abc6a1fed32ff4991f9385aa81aa2803dbf87 (diff) | |
Merge "Call mergeWithNextTransaction in registerCallbacksForSync" into main
| -rw-r--r-- | core/java/android/view/ViewRootImpl.java | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index be4693bc0377..4da02f902e60 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -11612,7 +11612,14 @@ public final class ViewRootImpl implements ViewParent, Log.d(mTag, "registerCallbacksForSync syncBuffer=" + syncBuffer); } - surfaceSyncGroup.addTransaction(mPendingTransaction); + final Transaction t; + if (mHasPendingTransactions) { + t = new Transaction(); + t.merge(mPendingTransaction); + } else { + t = null; + } + mAttachInfo.mThreadedRenderer.registerRtFrameCallback(new FrameDrawingCallback() { @Override public void onFrameDraw(long frame) { @@ -11625,6 +11632,9 @@ public final class ViewRootImpl implements ViewParent, "Received frameDrawingCallback syncResult=" + syncResult + " frameNum=" + frame + "."); } + if (t != null) { + mergeWithNextTransaction(t, frame); + } // If the syncResults are SYNC_LOST_SURFACE_REWARD_IF_FOUND or // SYNC_CONTEXT_IS_STOPPED it means nothing will draw. There's no need to set up |