Change "track frame time property" to a list preference

The preference can now be used to disable GPU profiling, expose
profiling data to dumpsys gfxinfo or display that data on screen.

Change-Id: Ib77e9695445fae4a7419667716e92bcc196437df
This commit is contained in:
Romain Guy
2013-01-07 11:20:49 -08:00
parent ae2a22db7f
commit 70618480d9
4 changed files with 43 additions and 12 deletions

View File

@@ -686,6 +686,20 @@
<item>error</item> <item>error</item>
</string-array> </string-array>
<!-- Titles for frame time tracking preference. [CHAR LIMIT=35] -->
<string-array name="track_frame_time_entries">
<item>Off</item>
<item>On screen</item>
<item>In adb shell dumpsys gfxinfo</item>
</string-array>
<!-- Values for frame time tracking preference. -->
<string-array name="track_frame_time_values" translatable="false" >
<item>false</item>
<item>visual</item>
<item>true</item>
</string-array>
<!-- Titles for app process limit preference. [CHAR LIMIT=35] --> <!-- Titles for app process limit preference. [CHAR LIMIT=35] -->
<string-array name="app_process_limit_entries"> <string-array name="app_process_limit_entries">
<item>Standard limit</item> <item>Standard limit</item>

View File

@@ -3957,8 +3957,6 @@
<!-- UI debug setting: profile time taken by hardware acceleration to render apps [CHAR LIMIT=25] --> <!-- UI debug setting: profile time taken by hardware acceleration to render apps [CHAR LIMIT=25] -->
<string name="track_frame_time">Profile GPU rendering</string> <string name="track_frame_time">Profile GPU rendering</string>
<!-- UI debug setting: profile hardware acceleration summary [CHAR LIMIT=50] -->
<string name="track_frame_time_summary">Measure rendering time in adb shell dumpsys gfxinfo</string>
<!-- UI debug setting: scaling factor for window animations [CHAR LIMIT=25] --> <!-- UI debug setting: scaling factor for window animations [CHAR LIMIT=25] -->
<string name="window_animation_scale_title">Window animation scale</string> <string name="window_animation_scale_title">Window animation scale</string>

View File

@@ -183,10 +183,12 @@
android:title="@string/show_cpu_usage" android:title="@string/show_cpu_usage"
android:summary="@string/show_cpu_usage_summary"/> android:summary="@string/show_cpu_usage_summary"/>
<CheckBoxPreference <ListPreference
android:key="track_frame_time" android:key="track_frame_time"
android:title="@string/track_frame_time" android:title="@string/track_frame_time"
android:summary="@string/track_frame_time_summary"/> android:persistent="false"
android:entries="@array/track_frame_time_entries"
android:entryValues="@array/track_frame_time_values" />
<ListPreference <ListPreference
android:key="enable_opengl_traces" android:key="enable_opengl_traces"

View File

@@ -166,11 +166,11 @@ public class DevelopmentSettings extends PreferenceFragment
private CheckBoxPreference mShowCpuUsage; private CheckBoxPreference mShowCpuUsage;
private CheckBoxPreference mForceHardwareUi; private CheckBoxPreference mForceHardwareUi;
private CheckBoxPreference mForceMsaa; private CheckBoxPreference mForceMsaa;
private CheckBoxPreference mTrackFrameTime;
private CheckBoxPreference mShowHwScreenUpdates; private CheckBoxPreference mShowHwScreenUpdates;
private CheckBoxPreference mShowHwLayersUpdates; private CheckBoxPreference mShowHwLayersUpdates;
private CheckBoxPreference mShowHwOverdraw; private CheckBoxPreference mShowHwOverdraw;
private CheckBoxPreference mDebugLayout; private CheckBoxPreference mDebugLayout;
private ListPreference mTrackFrameTime;
private ListPreference mWindowAnimationScale; private ListPreference mWindowAnimationScale;
private ListPreference mTransitionAnimationScale; private ListPreference mTransitionAnimationScale;
private ListPreference mAnimatorDurationScale; private ListPreference mAnimatorDurationScale;
@@ -240,7 +240,9 @@ public class DevelopmentSettings extends PreferenceFragment
mShowCpuUsage = findAndInitCheckboxPref(SHOW_CPU_USAGE_KEY); mShowCpuUsage = findAndInitCheckboxPref(SHOW_CPU_USAGE_KEY);
mForceHardwareUi = findAndInitCheckboxPref(FORCE_HARDWARE_UI_KEY); mForceHardwareUi = findAndInitCheckboxPref(FORCE_HARDWARE_UI_KEY);
mForceMsaa = findAndInitCheckboxPref(FORCE_MSAA_KEY); mForceMsaa = findAndInitCheckboxPref(FORCE_MSAA_KEY);
mTrackFrameTime = findAndInitCheckboxPref(TRACK_FRAME_TIME_KEY); mTrackFrameTime = (ListPreference) findPreference(TRACK_FRAME_TIME_KEY);
mAllPrefs.add(mTrackFrameTime);
mTrackFrameTime.setOnPreferenceChangeListener(this);
mShowHwScreenUpdates = findAndInitCheckboxPref(SHOW_HW_SCREEN_UPDATES_KEY); mShowHwScreenUpdates = findAndInitCheckboxPref(SHOW_HW_SCREEN_UPDATES_KEY);
mShowHwLayersUpdates = findAndInitCheckboxPref(SHOW_HW_LAYERS_UPDATES_KEY); mShowHwLayersUpdates = findAndInitCheckboxPref(SHOW_HW_LAYERS_UPDATES_KEY);
mShowHwOverdraw = findAndInitCheckboxPref(SHOW_HW_OVERDRAW_KEY); mShowHwOverdraw = findAndInitCheckboxPref(SHOW_HW_OVERDRAW_KEY);
@@ -708,14 +710,28 @@ public class DevelopmentSettings extends PreferenceFragment
} }
private void updateTrackFrameTimeOptions() { private void updateTrackFrameTimeOptions() {
updateCheckBox(mTrackFrameTime, String value = SystemProperties.get(HardwareRenderer.PROFILE_PROPERTY);
SystemProperties.getBoolean(HardwareRenderer.PROFILE_PROPERTY, false)); if (value == null) {
value = "";
} }
private void writeTrackFrameTimeOptions() { CharSequence[] values = mTrackFrameTime.getEntryValues();
for (int i = 0; i < values.length; i++) {
if (value.contentEquals(values[i])) {
mTrackFrameTime.setValueIndex(i);
mTrackFrameTime.setSummary(mTrackFrameTime.getEntries()[i]);
return;
}
}
mTrackFrameTime.setValueIndex(0);
mTrackFrameTime.setSummary(mTrackFrameTime.getEntries()[0]);
}
private void writeTrackFrameTimeOptions(Object newValue) {
SystemProperties.set(HardwareRenderer.PROFILE_PROPERTY, SystemProperties.set(HardwareRenderer.PROFILE_PROPERTY,
mTrackFrameTime.isChecked() ? "true" : "false"); newValue == null ? "" : newValue.toString());
pokeSystemProperties(); pokeSystemProperties();
updateTrackFrameTimeOptions();
} }
private void updateShowHwScreenUpdatesOptions() { private void updateShowHwScreenUpdatesOptions() {
@@ -1071,8 +1087,6 @@ public class DevelopmentSettings extends PreferenceFragment
writeHardwareUiOptions(); writeHardwareUiOptions();
} else if (preference == mForceMsaa) { } else if (preference == mForceMsaa) {
writeMsaaOptions(); writeMsaaOptions();
} else if (preference == mTrackFrameTime) {
writeTrackFrameTimeOptions();
} else if (preference == mShowHwScreenUpdates) { } else if (preference == mShowHwScreenUpdates) {
writeShowHwScreenUpdatesOptions(); writeShowHwScreenUpdatesOptions();
} else if (preference == mShowHwLayersUpdates) { } else if (preference == mShowHwLayersUpdates) {
@@ -1108,6 +1122,9 @@ public class DevelopmentSettings extends PreferenceFragment
} else if (preference == mOpenGLTraces) { } else if (preference == mOpenGLTraces) {
writeOpenGLTracesOptions(newValue); writeOpenGLTracesOptions(newValue);
return true; return true;
} else if (preference == mTrackFrameTime) {
writeTrackFrameTimeOptions(newValue);
return true;
} else if (preference == mEnableTracesPref) { } else if (preference == mEnableTracesPref) {
writeEnableTracesOptions(); writeEnableTracesOptions();
return true; return true;