Add new GPU overdraw setting

Change-Id: I45404b37df382e51eea42de92535f49f870c98b2
This commit is contained in:
Romain Guy
2013-05-03 17:38:38 -07:00
parent 738ea06045
commit eb90fc56b2
4 changed files with 48 additions and 20 deletions

View File

@@ -830,6 +830,20 @@
<item>true</item>
</string-array>
<!-- Titles for debug overdraw preference. [CHAR LIMIT=35] -->
<string-array name="debug_hw_overdraw_entries">
<item>Off</item>
<item>Show overdraw areas</item>
<item>Show overdraw counter</item>
</string-array>
<!-- Values for debug overdraw preference. -->
<string-array name="debug_hw_overdraw_values" translatable="false" >
<item>false</item>
<item>show</item>
<item>count</item>
</string-array>
<!-- Titles for app process limit preference. [CHAR LIMIT=35] -->
<string-array name="app_process_limit_entries">
<item>Standard limit</item>

View File

@@ -3974,9 +3974,7 @@
<string name="show_hw_layers_updates_summary">Flash hardware layers green when they update</string>
<!-- UI debug setting: show the amount of overdraw in apps using the GPU [CHAR LIMIT=25] -->
<string name="show_hw_overdraw">Show GPU overdraw</string>
<!-- UI debug setting: Show the amount of overdraw summary [CHAR LIMIT=50] -->
<string name="show_hw_overdraw_summary">From best to worst: blue, green, light red, red</string>
<string name="debug_hw_overdraw">Debug GPU overdraw</string>
<!-- UI debug setting: disable use of overlays? [CHAR LIMIT=25] -->
<string name="disable_overlays">Disable HW overlays</string>

View File

@@ -166,10 +166,12 @@
android:title="@string/show_hw_layers_updates"
android:summary="@string/show_hw_layers_updates_summary"/>
<CheckBoxPreference
android:key="show_hw_overdraw"
android:title="@string/show_hw_overdraw"
android:summary="@string/show_hw_overdraw_summary"/>
<ListPreference
android:key="debug_hw_overdraw"
android:title="@string/debug_hw_overdraw"
android:persistent="false"
android:entries="@array/debug_hw_overdraw_entries"
android:entryValues="@array/debug_hw_overdraw_values" />
<ListPreference
android:key="show_non_rect_clip"

View File

@@ -48,7 +48,6 @@ import android.os.ServiceManager;
import android.os.StrictMode;
import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.UserManager;
import android.preference.CheckBoxPreference;
import android.preference.ListPreference;
import android.preference.Preference;
@@ -120,7 +119,7 @@ public class DevelopmentSettings extends PreferenceFragment
private static final String SHOW_NON_RECTANGULAR_CLIP_KEY = "show_non_rect_clip";
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 SHOW_HW_OVERDRAW_KEY = "show_hw_overdraw";
private static final String DEBUG_HW_OVERDRAW_KEY = "debug_hw_overdraw";
private static final String DEBUG_LAYOUT_KEY = "debug_layout";
private static final String WINDOW_ANIMATION_SCALE_KEY = "window_animation_scale";
private static final String TRANSITION_ANIMATION_SCALE_KEY = "transition_animation_scale";
@@ -181,8 +180,8 @@ public class DevelopmentSettings extends PreferenceFragment
private CheckBoxPreference mForceMsaa;
private CheckBoxPreference mShowHwScreenUpdates;
private CheckBoxPreference mShowHwLayersUpdates;
private CheckBoxPreference mShowHwOverdraw;
private CheckBoxPreference mDebugLayout;
private ListPreference mDebugHwOverdraw;
private ListPreference mTrackFrameTime;
private ListPreference mShowNonRectClip;
private ListPreference mWindowAnimationScale;
@@ -282,8 +281,8 @@ public class DevelopmentSettings extends PreferenceFragment
mShowNonRectClip = addListPreference(SHOW_NON_RECTANGULAR_CLIP_KEY);
mShowHwScreenUpdates = findAndInitCheckboxPref(SHOW_HW_SCREEN_UPDATES_KEY);
mShowHwLayersUpdates = findAndInitCheckboxPref(SHOW_HW_LAYERS_UPDATES_KEY);
mShowHwOverdraw = findAndInitCheckboxPref(SHOW_HW_OVERDRAW_KEY);
mDebugLayout = findAndInitCheckboxPref(DEBUG_LAYOUT_KEY);
mDebugHwOverdraw = addListPreference(DEBUG_HW_OVERDRAW_KEY);
mWindowAnimationScale = addListPreference(WINDOW_ANIMATION_SCALE_KEY);
mTransitionAnimationScale = addListPreference(TRANSITION_ANIMATION_SCALE_KEY);
mAnimatorDurationScale = addListPreference(ANIMATOR_DURATION_SCALE_KEY);
@@ -479,7 +478,7 @@ public class DevelopmentSettings extends PreferenceFragment
updateShowNonRectClipOptions();
updateShowHwScreenUpdatesOptions();
updateShowHwLayersUpdatesOptions();
updateShowHwOverdrawOptions();
updateDebugHwOverdrawOptions();
updateDebugLayoutOptions();
updateAnimationScaleOptions();
updateOverlayDisplayDevicesOptions();
@@ -835,15 +834,29 @@ public class DevelopmentSettings extends PreferenceFragment
pokeSystemProperties();
}
private void updateShowHwOverdrawOptions() {
updateCheckBox(mShowHwOverdraw, SystemProperties.getBoolean(
HardwareRenderer.DEBUG_SHOW_OVERDRAW_PROPERTY, false));
private void updateDebugHwOverdrawOptions() {
String value = SystemProperties.get(HardwareRenderer.DEBUG_OVERDRAW_PROPERTY);
if (value == null) {
value = "";
}
CharSequence[] values = mDebugHwOverdraw.getEntryValues();
for (int i = 0; i < values.length; i++) {
if (value.contentEquals(values[i])) {
mDebugHwOverdraw.setValueIndex(i);
mDebugHwOverdraw.setSummary(mDebugHwOverdraw.getEntries()[i]);
return;
}
}
mDebugHwOverdraw.setValueIndex(0);
mDebugHwOverdraw.setSummary(mDebugHwOverdraw.getEntries()[0]);
}
private void writeShowHwOverdrawOptions() {
SystemProperties.set(HardwareRenderer.DEBUG_SHOW_OVERDRAW_PROPERTY,
mShowHwOverdraw.isChecked() ? "true" : null);
private void writeDebugHwOverdrawOptions(Object newValue) {
SystemProperties.set(HardwareRenderer.DEBUG_OVERDRAW_PROPERTY,
newValue == null ? "" : newValue.toString());
pokeSystemProperties();
updateDebugHwOverdrawOptions();
}
private void updateDebugLayoutOptions() {
@@ -1158,8 +1171,6 @@ public class DevelopmentSettings extends PreferenceFragment
writeShowHwScreenUpdatesOptions();
} else if (preference == mShowHwLayersUpdates) {
writeShowHwLayersUpdatesOptions();
} else if (preference == mShowHwOverdraw) {
writeShowHwOverdrawOptions();
} else if (preference == mDebugLayout) {
writeDebugLayoutOptions();
}
@@ -1192,6 +1203,9 @@ public class DevelopmentSettings extends PreferenceFragment
} else if (preference == mTrackFrameTime) {
writeTrackFrameTimeOptions(newValue);
return true;
} else if (preference == mDebugHwOverdraw) {
writeDebugHwOverdrawOptions(newValue);
return true;
} else if (preference == mShowNonRectClip) {
writeShowNonRectClipOptions(newValue);
return true;