Merge "Only complete sync draw for visible window" into tm-qpr-dev am: d883525692
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19801735 Change-Id: I43454529441290ece843d65dbac0143c18ea2fe0 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -650,7 +650,7 @@ public class WindowManagerService extends IWindowManager.Stub
|
|||||||
// Whether the system should use BLAST for ViewRootImpl
|
// Whether the system should use BLAST for ViewRootImpl
|
||||||
final boolean mUseBLAST;
|
final boolean mUseBLAST;
|
||||||
// Whether to enable BLASTSyncEngine Transaction passing.
|
// Whether to enable BLASTSyncEngine Transaction passing.
|
||||||
final boolean mUseBLASTSync = true;
|
static final boolean USE_BLAST_SYNC = true;
|
||||||
|
|
||||||
final BLASTSyncEngine mSyncEngine;
|
final BLASTSyncEngine mSyncEngine;
|
||||||
|
|
||||||
@@ -2576,7 +2576,7 @@ public class WindowManagerService extends IWindowManager.Stub
|
|||||||
|
|
||||||
if (outSyncIdBundle != null) {
|
if (outSyncIdBundle != null) {
|
||||||
final int maybeSyncSeqId;
|
final int maybeSyncSeqId;
|
||||||
if (mUseBLASTSync && win.useBLASTSync() && viewVisibility != View.GONE
|
if (USE_BLAST_SYNC && win.useBLASTSync() && viewVisibility == View.VISIBLE
|
||||||
&& win.mSyncSeqId > lastSyncSeqId) {
|
&& win.mSyncSeqId > lastSyncSeqId) {
|
||||||
maybeSyncSeqId = win.shouldSyncWithBuffers() ? win.mSyncSeqId : -1;
|
maybeSyncSeqId = win.shouldSyncWithBuffers() ? win.mSyncSeqId : -1;
|
||||||
win.markRedrawForSyncReported();
|
win.markRedrawForSyncReported();
|
||||||
@@ -5659,7 +5659,7 @@ public class WindowManagerService extends IWindowManager.Stub
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean useBLASTSync() {
|
public boolean useBLASTSync() {
|
||||||
return mUseBLASTSync;
|
return USE_BLAST_SYNC;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -5959,10 +5959,10 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
boolean isSyncFinished() {
|
boolean isSyncFinished() {
|
||||||
if (mSyncState == SYNC_STATE_WAITING_FOR_DRAW && mViewVisibility == View.GONE
|
if (mSyncState == SYNC_STATE_WAITING_FOR_DRAW && mViewVisibility != View.VISIBLE
|
||||||
&& !isVisibleRequested()) {
|
&& !isVisibleRequested()) {
|
||||||
// Don't wait for GONE windows. However, we don't alter the state in case the window
|
// Don't wait for invisible windows. However, we don't alter the state in case the
|
||||||
// becomes un-gone while the syncset is still active.
|
// window becomes visible while the sync group is still active.
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return super.isSyncFinished();
|
return super.isSyncFinished();
|
||||||
|
|||||||
Reference in New Issue
Block a user