From ce7b086cba5a3d710f0e5c77cb76b5de1091f551 Mon Sep 17 00:00:00 2001 From: Ian Elliott Date: Tue, 10 May 2022 16:26:09 -0600 Subject: [PATCH] Add 2 ANGLE deferlist settings These will be used by the ANGLE Developer Options GUI to process the deferlist Test: logcat + various flash/wipe + system-driver scenarios Bug: 224558229 Change-Id: I47f940612f8be0c83f0be04c2cc1af7908e37382 Merged-In: I47f940612f8be0c83f0be04c2cc1af7908e37382 --- core/java/android/provider/Settings.java | 12 ++++++++++++ core/proto/android/providers/settings/global.proto | 4 ++++ .../providers/settings/SettingsProtoDumpUtil.java | 6 ++++++ .../src/android/provider/SettingsBackupTest.java | 2 ++ 4 files changed, 24 insertions(+) diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index df6b827f5cb37..ba7df25c5d7c6 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -14409,6 +14409,18 @@ public final class Settings { @Readable public static final String ANGLE_EGL_FEATURES = "angle_egl_features"; + /** + * Comma-separated list of package names that ANGLE may have issues with + * @hide + */ + public static final String ANGLE_DEFERLIST = "angle_deferlist"; + + /** + * Integer mode of the logic for applying `angle_deferlist` + * @hide + */ + public static final String ANGLE_DEFERLIST_MODE = "angle_deferlist_mode"; + /** * Show the "ANGLE In Use" dialog box to the user when ANGLE is the OpenGL driver. * The value is a boolean (1 or 0). diff --git a/core/proto/android/providers/settings/global.proto b/core/proto/android/providers/settings/global.proto index 3c2a48a51b092..e165b079f450b 100644 --- a/core/proto/android/providers/settings/global.proto +++ b/core/proto/android/providers/settings/global.proto @@ -468,6 +468,10 @@ message GlobalSettingsProto { optional SettingProto updatable_driver_prerelease_opt_in_apps = 18; optional SettingProto angle_egl_features = 19; + // ANGLE - List of Apps that ANGLE may have issues with + optional SettingProto angle_deferlist = 20; + // ANGLE - Integer mode of the logic for applying `angle_deferlist` + optional SettingProto angle_deferlist_mode = 21; } optional Gpu gpu = 59; diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java index ccfeae43e8b6a..8683eac73c6cd 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProtoDumpUtil.java @@ -770,6 +770,12 @@ class SettingsProtoDumpUtil { dumpSetting(s, p, Settings.Global.ANGLE_EGL_FEATURES, GlobalSettingsProto.Gpu.ANGLE_EGL_FEATURES); + dumpSetting(s, p, + Settings.Global.ANGLE_DEFERLIST, + GlobalSettingsProto.Gpu.ANGLE_DEFERLIST); + dumpSetting(s, p, + Settings.Global.ANGLE_DEFERLIST_MODE, + GlobalSettingsProto.Gpu.ANGLE_DEFERLIST_MODE); dumpSetting(s, p, Settings.Global.SHOW_ANGLE_IN_USE_DIALOG_BOX, GlobalSettingsProto.Gpu.SHOW_ANGLE_IN_USE_DIALOG); diff --git a/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java b/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java index cce515444c1f3..1dc088717e9c5 100644 --- a/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java +++ b/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java @@ -512,6 +512,8 @@ public class SettingsBackupTest { Settings.Global.ANGLE_GL_DRIVER_SELECTION_PKGS, Settings.Global.ANGLE_GL_DRIVER_SELECTION_VALUES, Settings.Global.ANGLE_EGL_FEATURES, + Settings.Global.ANGLE_DEFERLIST, + Settings.Global.ANGLE_DEFERLIST_MODE, Settings.Global.UPDATABLE_DRIVER_ALL_APPS, Settings.Global.UPDATABLE_DRIVER_PRODUCTION_OPT_IN_APPS, Settings.Global.UPDATABLE_DRIVER_PRERELEASE_OPT_IN_APPS,