Add new dev settings to debug hardware layers

Change-Id: I2668552d70911a90e173efdf75bc44139ed394c8
This commit is contained in:
Romain Guy
2012-08-06 14:52:52 -07:00
parent 0a83748580
commit cdc2c5534f
3 changed files with 33 additions and 6 deletions

View File

@@ -3745,6 +3745,11 @@
<!-- UI debug setting: show GPU rendering screen updates summary [CHAR LIMIT=50] --> <!-- UI debug setting: show GPU rendering screen updates summary [CHAR LIMIT=50] -->
<string name="show_hw_screen_updates_summary">Flash views inside windows when drawn with the GPU</string> <string name="show_hw_screen_updates_summary">Flash views inside windows when drawn with the GPU</string>
<!-- UI debug setting: show when hardware layers get updated [CHAR LIMIT=25] -->
<string name="show_hw_layers_updates">Show hardware layers updates</string>
<!-- UI debug setting: show hardware layers updates summary [CHAR LIMIT=50] -->
<string name="show_hw_layers_updates_summary">Flash hardware layers green when they update</string>
<!-- UI debug setting: disable use of overlays? [CHAR LIMIT=25] --> <!-- UI debug setting: disable use of overlays? [CHAR LIMIT=25] -->
<string name="disable_overlays">Disable HW overlays</string> <string name="disable_overlays">Disable HW overlays</string>
<!-- UI debug setting: disable use of overlays summary [CHAR LIMIT=50] --> <!-- UI debug setting: disable use of overlays summary [CHAR LIMIT=50] -->

View File

@@ -100,6 +100,11 @@
android:title="@string/show_hw_screen_updates" android:title="@string/show_hw_screen_updates"
android:summary="@string/show_hw_screen_updates_summary"/> android:summary="@string/show_hw_screen_updates_summary"/>
<CheckBoxPreference
android:key="show_hw_layers_udpates"
android:title="@string/show_hw_layers_updates"
android:summary="@string/show_hw_layers_updates_summary"/>
<CheckBoxPreference <CheckBoxPreference
android:key="show_screen_updates" android:key="show_screen_updates"
android:title="@string/show_screen_updates" android:title="@string/show_screen_updates"

View File

@@ -91,6 +91,7 @@ public class DevelopmentSettings extends PreferenceFragment
private static final String FORCE_HARDWARE_UI_KEY = "force_hw_ui"; private static final String FORCE_HARDWARE_UI_KEY = "force_hw_ui";
private static final String TRACK_FRAME_TIME_KEY = "track_frame_time"; private static final String TRACK_FRAME_TIME_KEY = "track_frame_time";
private static final String SHOW_HW_SCREEN_UPDATES_KEY = "show_hw_screen_udpates"; private static final String SHOW_HW_SCREEN_UPDATES_KEY = "show_hw_screen_udpates";
private static final String SHOW_HW_LAYERS_UPDATES_KEY = "show_hw_layers_udpates";
private static final String DEBUG_LAYOUT_KEY = "debug_layout"; private static final String DEBUG_LAYOUT_KEY = "debug_layout";
private static final String WINDOW_ANIMATION_SCALE_KEY = "window_animation_scale"; private static final String WINDOW_ANIMATION_SCALE_KEY = "window_animation_scale";
private static final String TRANSITION_ANIMATION_SCALE_KEY = "transition_animation_scale"; private static final String TRANSITION_ANIMATION_SCALE_KEY = "transition_animation_scale";
@@ -136,6 +137,7 @@ public class DevelopmentSettings extends PreferenceFragment
private CheckBoxPreference mForceHardwareUi; private CheckBoxPreference mForceHardwareUi;
private CheckBoxPreference mTrackFrameTime; private CheckBoxPreference mTrackFrameTime;
private CheckBoxPreference mShowHwScreenUpdates; private CheckBoxPreference mShowHwScreenUpdates;
private CheckBoxPreference mShowHwLayersUpdates;
private CheckBoxPreference mDebugLayout; private CheckBoxPreference mDebugLayout;
private ListPreference mWindowAnimationScale; private ListPreference mWindowAnimationScale;
private ListPreference mTransitionAnimationScale; private ListPreference mTransitionAnimationScale;
@@ -188,6 +190,7 @@ public class DevelopmentSettings extends PreferenceFragment
mForceHardwareUi = findAndInitCheckboxPref(FORCE_HARDWARE_UI_KEY); mForceHardwareUi = findAndInitCheckboxPref(FORCE_HARDWARE_UI_KEY);
mTrackFrameTime = findAndInitCheckboxPref(TRACK_FRAME_TIME_KEY); mTrackFrameTime = findAndInitCheckboxPref(TRACK_FRAME_TIME_KEY);
mShowHwScreenUpdates = findAndInitCheckboxPref(SHOW_HW_SCREEN_UPDATES_KEY); mShowHwScreenUpdates = findAndInitCheckboxPref(SHOW_HW_SCREEN_UPDATES_KEY);
mShowHwLayersUpdates = findAndInitCheckboxPref(SHOW_HW_LAYERS_UPDATES_KEY);
mDebugLayout = findAndInitCheckboxPref(DEBUG_LAYOUT_KEY); mDebugLayout = findAndInitCheckboxPref(DEBUG_LAYOUT_KEY);
mWindowAnimationScale = (ListPreference) findPreference(WINDOW_ANIMATION_SCALE_KEY); mWindowAnimationScale = (ListPreference) findPreference(WINDOW_ANIMATION_SCALE_KEY);
mAllPrefs.add(mWindowAnimationScale); mAllPrefs.add(mWindowAnimationScale);
@@ -335,7 +338,7 @@ public class DevelopmentSettings extends PreferenceFragment
Settings.Secure.ADB_ENABLED, 0) != 0); Settings.Secure.ADB_ENABLED, 0) != 0);
updateCheckBox(mKeepScreenOn, Settings.System.getInt(cr, updateCheckBox(mKeepScreenOn, Settings.System.getInt(cr,
Settings.System.STAY_ON_WHILE_PLUGGED_IN, 0) != 0); Settings.System.STAY_ON_WHILE_PLUGGED_IN, 0) != 0);
updateCheckBox(mEnforceReadExternal, isPermissionEnforced(context, READ_EXTERNAL_STORAGE)); updateCheckBox(mEnforceReadExternal, isPermissionEnforced(READ_EXTERNAL_STORAGE));
updateCheckBox(mAllowMockLocation, Settings.Secure.getInt(cr, updateCheckBox(mAllowMockLocation, Settings.Secure.getInt(cr,
Settings.Secure.ALLOW_MOCK_LOCATION, 0) != 0); Settings.Secure.ALLOW_MOCK_LOCATION, 0) != 0);
updateHdcpValues(); updateHdcpValues();
@@ -349,6 +352,7 @@ public class DevelopmentSettings extends PreferenceFragment
updateHardwareUiOptions(); updateHardwareUiOptions();
updateTrackFrameTimeOptions(); updateTrackFrameTimeOptions();
updateShowHwScreenUpdatesOptions(); updateShowHwScreenUpdatesOptions();
updateShowHwLayersUpdatesOptions();
updateDebugLayoutOptions(); updateDebugLayoutOptions();
updateAnimationScaleOptions(); updateAnimationScaleOptions();
updateEnableTracesOptions(); updateEnableTracesOptions();
@@ -581,7 +585,18 @@ public class DevelopmentSettings extends PreferenceFragment
private void writeShowHwScreenUpdatesOptions() { private void writeShowHwScreenUpdatesOptions() {
SystemProperties.set(HardwareRenderer.DEBUG_DIRTY_REGIONS_PROPERTY, SystemProperties.set(HardwareRenderer.DEBUG_DIRTY_REGIONS_PROPERTY,
mShowHwScreenUpdates.isChecked() ? "true" : "false"); mShowHwScreenUpdates.isChecked() ? "true" : null);
pokeSystemProperties();
}
private void updateShowHwLayersUpdatesOptions() {
updateCheckBox(mShowHwLayersUpdates, SystemProperties.getBoolean(
HardwareRenderer.DEBUG_SHOW_LAYERS_UPDATES_PROPERTY, false));
}
private void writeShowHwLayersUpdatesOptions() {
SystemProperties.set(HardwareRenderer.DEBUG_SHOW_LAYERS_UPDATES_PROPERTY,
mShowHwLayersUpdates.isChecked() ? "true" : null);
pokeSystemProperties(); pokeSystemProperties();
} }
@@ -705,7 +720,6 @@ public class DevelopmentSettings extends PreferenceFragment
} }
private void updateEnableTracesOptions() { private void updateEnableTracesOptions() {
String strValue = SystemProperties.get(Trace.PROPERTY_TRACE_TAG_ENABLEFLAGS);
long flags = SystemProperties.getLong(Trace.PROPERTY_TRACE_TAG_ENABLEFLAGS, 0); long flags = SystemProperties.getLong(Trace.PROPERTY_TRACE_TAG_ENABLEFLAGS, 0);
String[] values = mEnableTracesPref.getEntryValues(); String[] values = mEnableTracesPref.getEntryValues();
int numSet = 0; int numSet = 0;
@@ -850,6 +864,8 @@ public class DevelopmentSettings extends PreferenceFragment
writeTrackFrameTimeOptions(); writeTrackFrameTimeOptions();
} else if (preference == mShowHwScreenUpdates) { } else if (preference == mShowHwScreenUpdates) {
writeShowHwScreenUpdatesOptions(); writeShowHwScreenUpdatesOptions();
} else if (preference == mShowHwLayersUpdates) {
writeShowHwLayersUpdatesOptions();
} else if (preference == mDebugLayout) { } else if (preference == mDebugLayout) {
writeDebugLayoutOptions(); writeDebugLayoutOptions();
} }
@@ -941,6 +957,7 @@ public class DevelopmentSettings extends PreferenceFragment
void pokeSystemProperties() { void pokeSystemProperties() {
if (!mDontPokeProperties) { if (!mDontPokeProperties) {
//noinspection unchecked
(new SystemPropPoker()).execute(); (new SystemPropPoker()).execute();
} }
} }
@@ -970,7 +987,7 @@ public class DevelopmentSettings extends PreferenceFragment
} }
/** /**
* Dialog to confirm enforcement of {@link #READ_EXTERNAL_STORAGE}. * Dialog to confirm enforcement of {@link android.Manifest.permission#READ_EXTERNAL_STORAGE}.
*/ */
public static class ConfirmEnforceFragment extends DialogFragment { public static class ConfirmEnforceFragment extends DialogFragment {
public static void show(DevelopmentSettings parent) { public static void show(DevelopmentSettings parent) {
@@ -1005,9 +1022,9 @@ public class DevelopmentSettings extends PreferenceFragment
} }
} }
private static boolean isPermissionEnforced(Context context, String permission) { private static boolean isPermissionEnforced(String permission) {
try { try {
return ActivityThread.getPackageManager().isPermissionEnforced(READ_EXTERNAL_STORAGE); return ActivityThread.getPackageManager().isPermissionEnforced(permission);
} catch (RemoteException e) { } catch (RemoteException e) {
throw new RuntimeException("Problem talking with PackageManager", e); throw new RuntimeException("Problem talking with PackageManager", e);
} }