From ef6fa3f9d3710df7558a9cbbd9e31c3307bd495a 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 --- 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 878b064b7d2a8..82455fe5a7f74 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -14495,6 +14495,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 f5466e7834345..a4f469d1fbae7 100644 --- a/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java +++ b/packages/SettingsProvider/test/src/android/provider/SettingsBackupTest.java @@ -511,6 +511,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,