Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 56cfd53b authored by Chavi Weingarten's avatar Chavi Weingarten
Browse files

Move setColorSpaceAgnostic to VRI

The request can be done client side.

Bug: 308662081
Test: Builds
Change-Id: I9abf2d6c55919f8cc7e05dbc04fdb19c10124b8f
parent ace5c353
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -115,6 +115,7 @@ import static android.view.inputmethod.InputMethodEditorTraceProto.InputMethodCl
import static com.android.input.flags.Flags.enablePointerChoreographer;
import static com.android.window.flags.Flags.enableBufferTransformHintFromDisplay;
import static com.android.window.flags.Flags.setScPropertiesInClient;
import android.Manifest;
import android.accessibilityservice.AccessibilityService;
@@ -3522,6 +3523,16 @@ public final class ViewRootImpl implements ViewParent,
                        mTransaction.setDefaultFrameRateCompatibility(mSurfaceControl,
                            Surface.FRAME_RATE_COMPATIBILITY_NO_VOTE).apply();
                    }
                    if (setScPropertiesInClient()) {
                        if (surfaceControlChanged || windowAttributesChanged) {
                            boolean colorSpaceAgnostic = (lp.privateFlags
                                    & WindowManager.LayoutParams.PRIVATE_FLAG_COLOR_SPACE_AGNOSTIC)
                                    != 0;
                            mTransaction.setColorSpaceAgnostic(mSurfaceControl, colorSpaceAgnostic)
                                    .apply();
                        }
                    }
                }
                if (DEBUG_LAYOUT) Log.v(mTag, "relayout: frame=" + frame.toShortString()
+8 −0
Original line number Diff line number Diff line
@@ -92,3 +92,11 @@ flag {
        purpose: PURPOSE_BUGFIX
    }
}

flag {
    namespace: "window_surfaces"
    name: "set_sc_properties_in_client"
    description: "Set VRI SC properties in the client instead of system server"
    is_fixed_read_only: true
    bug: "308662081"
}
+7 −3
Original line number Diff line number Diff line
@@ -154,6 +154,7 @@ import static com.android.server.wm.WindowManagerServiceDumpProto.POLICY;
import static com.android.server.wm.WindowManagerServiceDumpProto.ROOT_WINDOW_CONTAINER;
import static com.android.server.wm.WindowManagerServiceDumpProto.WINDOW_FRAMES_VALID;
import static com.android.window.flags.Flags.multiCrop;
import static com.android.window.flags.Flags.setScPropertiesInClient;

import android.Manifest;
import android.Manifest.permission;
@@ -2328,9 +2329,12 @@ public class WindowManagerService extends IWindowManager.Stub
                    updateNonSystemOverlayWindowsVisibilityIfNeeded(
                            win, win.mWinAnimator.getShown());
                }
                if (!setScPropertiesInClient()) {
                    if ((attrChanges & (WindowManager.LayoutParams.PRIVATE_FLAGS_CHANGED)) != 0) {
                        winAnimator.setColorSpaceAgnosticLocked((win.mAttrs.privateFlags
                            & WindowManager.LayoutParams.PRIVATE_FLAG_COLOR_SPACE_AGNOSTIC) != 0);
                                & WindowManager.LayoutParams.PRIVATE_FLAG_COLOR_SPACE_AGNOSTIC)
                                != 0);
                    }
                }
                // See if the DisplayWindowPolicyController wants to keep the activity on the window
                if (displayContent.mDwpcHelper.hasController()
+5 −2
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ import static com.android.server.wm.WindowStateAnimatorProto.DRAW_STATE;
import static com.android.server.wm.WindowStateAnimatorProto.SURFACE;
import static com.android.server.wm.WindowStateAnimatorProto.SYSTEM_DECOR_RECT;
import static com.android.window.flags.Flags.secureWindowState;
import static com.android.window.flags.Flags.setScPropertiesInClient;

import android.content.Context;
import android.graphics.PixelFormat;
@@ -311,8 +312,10 @@ class WindowStateAnimator {

            mSurfaceController = new WindowSurfaceController(attrs.getTitle().toString(), format,
                    flags, this, attrs.type);
            if (!setScPropertiesInClient()) {
                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