Reduce transaction to sf when creating surface

There will be always surface placement after creating surface,
which will apply the pending transaction. So the operation
for color space doesn't need to be an additional transaction.

Bug: 159103089
Test: CtsWindowManagerDeviceTestCases
Change-Id: Ibb8f987cb814698f46120823b892eaa1ab4844a9
This commit is contained in:
Riddle Hsu
2023-01-06 14:46:15 +00:00
parent 099f82439d
commit c9c3b69763
2 changed files with 5 additions and 16 deletions

View File

@@ -329,8 +329,8 @@ class WindowStateAnimator {
mSurfaceController = new WindowSurfaceController(attrs.getTitle().toString(), format,
flags, this, attrs.type);
mSurfaceController.setColorSpaceAgnostic((attrs.privateFlags
& WindowManager.LayoutParams.PRIVATE_FLAG_COLOR_SPACE_AGNOSTIC) != 0);
mSurfaceController.setColorSpaceAgnostic(w.getPendingTransaction(),
(attrs.privateFlags & LayoutParams.PRIVATE_FLAG_COLOR_SPACE_AGNOSTIC) != 0);
w.setHasSurface(true);
// The surface instance is changed. Make sure the input info can be applied to the
@@ -531,7 +531,7 @@ class WindowStateAnimator {
if (mSurfaceController == null) {
return;
}
mSurfaceController.setColorSpaceAgnostic(agnostic);
mSurfaceController.setColorSpaceAgnostic(mWin.getPendingTransaction(), agnostic);
}
/**

View File

@@ -236,24 +236,13 @@ class WindowSurfaceController {
}
}
void setColorSpaceAgnostic(boolean agnostic) {
void setColorSpaceAgnostic(SurfaceControl.Transaction t, boolean agnostic) {
ProtoLog.i(WM_SHOW_TRANSACTIONS, "SURFACE isColorSpaceAgnostic=%b: %s", agnostic, title);
if (mSurfaceControl == null) {
return;
}
if (SHOW_LIGHT_TRANSACTIONS) {
Slog.i(TAG, ">>> OPEN TRANSACTION setColorSpaceAgnosticLocked");
}
mService.openSurfaceTransaction();
try {
getGlobalTransaction().setColorSpaceAgnostic(mSurfaceControl, agnostic);
} finally {
mService.closeSurfaceTransaction("setColorSpaceAgnostic");
if (SHOW_LIGHT_TRANSACTIONS) {
Slog.i(TAG, "<<< CLOSE TRANSACTION setColorSpaceAgnosticLocked");
}
}
t.setColorSpaceAgnostic(mSurfaceControl, agnostic);
}
boolean showRobustly(SurfaceControl.Transaction t) {