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:
@@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user