Control OpenGL traces from Developer Options in Settings
This change adds a new entry to the developer options screen in settings that lets you choose what OpenGL traces you want. Change-Id: Ie789fa20dbbabee1e509b697106072464e9f9d2b
This commit is contained in:
@@ -670,6 +670,22 @@
|
|||||||
<item>1280x720/213;1920x1080/320</item>
|
<item>1280x720/213;1920x1080/320</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
|
<!-- Titles for OpenGL traces preference. [CHAR LIMIT=35] -->
|
||||||
|
<string-array name="enable_opengl_traces_entries">
|
||||||
|
<item>None</item>
|
||||||
|
<item>Logcat</item>
|
||||||
|
<item>Systrace (Graphics)</item>
|
||||||
|
<item>Call stack on glGetError</item>
|
||||||
|
</string-array>
|
||||||
|
|
||||||
|
<!-- Values for OpenGL traces preference. -->
|
||||||
|
<string-array name="enable_opengl_traces_values" translatable="false" >
|
||||||
|
<item>0</item>
|
||||||
|
<item>1</item>
|
||||||
|
<item>systrace</item>
|
||||||
|
<item>error</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>
|
||||||
|
@@ -3952,6 +3952,9 @@
|
|||||||
<!-- UI debug setting: enable low-level traces, all enabled summary [CHAR LIMIT=NONE] -->
|
<!-- UI debug setting: enable low-level traces, all enabled summary [CHAR LIMIT=NONE] -->
|
||||||
<string name="enable_traces_summary_all">All traces currently enabled</string>
|
<string name="enable_traces_summary_all">All traces currently enabled</string>
|
||||||
|
|
||||||
|
<!-- UI debug setting: enable various types of OpenGL traces [CHAR LIMIT=25] -->
|
||||||
|
<string name="enable_opengl_traces_title">Enable OpenGL traces</string>
|
||||||
|
|
||||||
<!-- UI debug setting: show layout bounds information [CHAR LIMIT=25] -->
|
<!-- UI debug setting: show layout bounds information [CHAR LIMIT=25] -->
|
||||||
<string name="debug_layout">Show layout bounds</string>
|
<string name="debug_layout">Show layout bounds</string>
|
||||||
<!-- UI debug setting: show layout bounds information summary [CHAR LIMIT=50] -->
|
<!-- UI debug setting: show layout bounds information summary [CHAR LIMIT=50] -->
|
||||||
|
@@ -188,6 +188,13 @@
|
|||||||
android:title="@string/track_frame_time"
|
android:title="@string/track_frame_time"
|
||||||
android:summary="@string/track_frame_time_summary"/>
|
android:summary="@string/track_frame_time_summary"/>
|
||||||
|
|
||||||
|
<ListPreference
|
||||||
|
android:key="enable_opengl_traces"
|
||||||
|
android:title="@string/enable_opengl_traces_title"
|
||||||
|
android:persistent="false"
|
||||||
|
android:entries="@array/enable_opengl_traces_entries"
|
||||||
|
android:entryValues="@array/enable_opengl_traces_values" />
|
||||||
|
|
||||||
<MultiCheckPreference
|
<MultiCheckPreference
|
||||||
android:key="enable_traces"
|
android:key="enable_traces"
|
||||||
android:title="@string/enable_traces_title"
|
android:title="@string/enable_traces_title"
|
||||||
|
@@ -95,6 +95,7 @@ public class DevelopmentSettings extends PreferenceFragment
|
|||||||
private static final String HARDWARE_UI_PROPERTY = "persist.sys.ui.hw";
|
private static final String HARDWARE_UI_PROPERTY = "persist.sys.ui.hw";
|
||||||
private static final String MSAA_PROPERTY = "debug.egl.force_msaa";
|
private static final String MSAA_PROPERTY = "debug.egl.force_msaa";
|
||||||
private static final String BUGREPORT_IN_POWER_KEY = "bugreport_in_power";
|
private static final String BUGREPORT_IN_POWER_KEY = "bugreport_in_power";
|
||||||
|
private static final String OPENGL_TRACES_PROPERTY = "debug.egl.trace";
|
||||||
|
|
||||||
private static final String DEBUG_APP_KEY = "debug_app";
|
private static final String DEBUG_APP_KEY = "debug_app";
|
||||||
private static final String WAIT_FOR_DEBUGGER_KEY = "wait_for_debugger";
|
private static final String WAIT_FOR_DEBUGGER_KEY = "wait_for_debugger";
|
||||||
@@ -117,6 +118,7 @@ public class DevelopmentSettings extends PreferenceFragment
|
|||||||
private static final String ANIMATOR_DURATION_SCALE_KEY = "animator_duration_scale";
|
private static final String ANIMATOR_DURATION_SCALE_KEY = "animator_duration_scale";
|
||||||
private static final String OVERLAY_DISPLAY_DEVICES_KEY = "overlay_display_devices";
|
private static final String OVERLAY_DISPLAY_DEVICES_KEY = "overlay_display_devices";
|
||||||
private static final String DEBUG_DEBUGGING_CATEGORY_KEY = "debug_debugging_category";
|
private static final String DEBUG_DEBUGGING_CATEGORY_KEY = "debug_debugging_category";
|
||||||
|
private static final String OPENGL_TRACES_KEY = "enable_opengl_traces";
|
||||||
|
|
||||||
private static final String ENABLE_TRACES_KEY = "enable_traces";
|
private static final String ENABLE_TRACES_KEY = "enable_traces";
|
||||||
|
|
||||||
@@ -170,6 +172,7 @@ public class DevelopmentSettings extends PreferenceFragment
|
|||||||
private ListPreference mTransitionAnimationScale;
|
private ListPreference mTransitionAnimationScale;
|
||||||
private ListPreference mAnimatorDurationScale;
|
private ListPreference mAnimatorDurationScale;
|
||||||
private ListPreference mOverlayDisplayDevices;
|
private ListPreference mOverlayDisplayDevices;
|
||||||
|
private ListPreference mOpenGLTraces;
|
||||||
private MultiCheckPreference mEnableTracesPref;
|
private MultiCheckPreference mEnableTracesPref;
|
||||||
|
|
||||||
private CheckBoxPreference mImmediatelyDestroyActivities;
|
private CheckBoxPreference mImmediatelyDestroyActivities;
|
||||||
@@ -245,6 +248,9 @@ public class DevelopmentSettings extends PreferenceFragment
|
|||||||
mOverlayDisplayDevices = (ListPreference) findPreference(OVERLAY_DISPLAY_DEVICES_KEY);
|
mOverlayDisplayDevices = (ListPreference) findPreference(OVERLAY_DISPLAY_DEVICES_KEY);
|
||||||
mAllPrefs.add(mOverlayDisplayDevices);
|
mAllPrefs.add(mOverlayDisplayDevices);
|
||||||
mOverlayDisplayDevices.setOnPreferenceChangeListener(this);
|
mOverlayDisplayDevices.setOnPreferenceChangeListener(this);
|
||||||
|
mOpenGLTraces = (ListPreference) findPreference(OPENGL_TRACES_KEY);
|
||||||
|
mAllPrefs.add(mOpenGLTraces);
|
||||||
|
mOpenGLTraces.setOnPreferenceChangeListener(this);
|
||||||
mEnableTracesPref = (MultiCheckPreference)findPreference(ENABLE_TRACES_KEY);
|
mEnableTracesPref = (MultiCheckPreference)findPreference(ENABLE_TRACES_KEY);
|
||||||
String[] traceValues = new String[Trace.TRACE_TAGS.length];
|
String[] traceValues = new String[Trace.TRACE_TAGS.length];
|
||||||
for (int i=Trace.TRACE_FLAGS_START_BIT; i<traceValues.length; i++) {
|
for (int i=Trace.TRACE_FLAGS_START_BIT; i<traceValues.length; i++) {
|
||||||
@@ -405,6 +411,7 @@ public class DevelopmentSettings extends PreferenceFragment
|
|||||||
updateDebugLayoutOptions();
|
updateDebugLayoutOptions();
|
||||||
updateAnimationScaleOptions();
|
updateAnimationScaleOptions();
|
||||||
updateOverlayDisplayDevicesOptions();
|
updateOverlayDisplayDevicesOptions();
|
||||||
|
updateOpenGLTracesOptions();
|
||||||
updateEnableTracesOptions();
|
updateEnableTracesOptions();
|
||||||
updateImmediatelyDestroyActivitiesOptions();
|
updateImmediatelyDestroyActivitiesOptions();
|
||||||
updateAppProcessLimitOptions();
|
updateAppProcessLimitOptions();
|
||||||
@@ -811,6 +818,30 @@ public class DevelopmentSettings extends PreferenceFragment
|
|||||||
updateOverlayDisplayDevicesOptions();
|
updateOverlayDisplayDevicesOptions();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void updateOpenGLTracesOptions() {
|
||||||
|
String value = SystemProperties.get(OPENGL_TRACES_PROPERTY);
|
||||||
|
if (value == null) {
|
||||||
|
value = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
CharSequence[] values = mOpenGLTraces.getEntryValues();
|
||||||
|
for (int i = 0; i < values.length; i++) {
|
||||||
|
if (value.contentEquals(values[i])) {
|
||||||
|
mOpenGLTraces.setValueIndex(i);
|
||||||
|
mOpenGLTraces.setSummary(mOpenGLTraces.getEntries()[i]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mOpenGLTraces.setValueIndex(0);
|
||||||
|
mOpenGLTraces.setSummary(mOpenGLTraces.getEntries()[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void writeOpenGLTracesOptions(Object newValue) {
|
||||||
|
SystemProperties.set(OPENGL_TRACES_PROPERTY, newValue == null ? "" : newValue.toString());
|
||||||
|
pokeSystemProperties();
|
||||||
|
updateOpenGLTracesOptions();
|
||||||
|
}
|
||||||
|
|
||||||
private void updateAppProcessLimitOptions() {
|
private void updateAppProcessLimitOptions() {
|
||||||
try {
|
try {
|
||||||
int limit = ActivityManagerNative.getDefault().getProcessLimit();
|
int limit = ActivityManagerNative.getDefault().getProcessLimit();
|
||||||
@@ -1037,6 +1068,9 @@ public class DevelopmentSettings extends PreferenceFragment
|
|||||||
} else if (preference == mOverlayDisplayDevices) {
|
} else if (preference == mOverlayDisplayDevices) {
|
||||||
writeOverlayDisplayDevicesOptions(newValue);
|
writeOverlayDisplayDevicesOptions(newValue);
|
||||||
return true;
|
return true;
|
||||||
|
} else if (preference == mOpenGLTraces) {
|
||||||
|
writeOpenGLTracesOptions(newValue);
|
||||||
|
return true;
|
||||||
} else if (preference == mEnableTracesPref) {
|
} else if (preference == mEnableTracesPref) {
|
||||||
writeEnableTracesOptions();
|
writeEnableTracesOptions();
|
||||||
return true;
|
return true;
|
||||||
|
Reference in New Issue
Block a user