Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f91b0361 authored by Derek Sollenberger's avatar Derek Sollenberger
Browse files

Add developer setting to set the default GPU renderer.

Test: manual on-device testing
Bug: 35345959
Change-Id: Ia48c2c7935ceab894467b9e1e040785db28644a5
parent ac3b3293
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -355,6 +355,12 @@
                android:summary="%s"
                android:title="@string/simulate_color_space" />

        <ListPreference
                android:key="debug_hw_renderer"
                android:title="@string/debug_hw_renderer"
                android:entries="@array/debug_hw_renderer_entries"
                android:entryValues="@array/debug_hw_renderer_values" />

    </PreferenceCategory>

    <PreferenceCategory android:key="media_category"
+32 −0
Original line number Diff line number Diff line
@@ -159,6 +159,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
    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_HW_OVERDRAW_KEY = "debug_hw_overdraw";
    private static final String DEBUG_HW_RENDERER_KEY = "debug_hw_renderer";
    private static final String DEBUG_LAYOUT_KEY = "debug_layout";
    private static final String FORCE_RTL_LAYOUT_KEY = "force_rtl_layout_all_locales";
    private static final String WINDOW_ANIMATION_SCALE_KEY = "window_animation_scale";
@@ -304,6 +305,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
    private SwitchPreference mDebugLayout;
    private SwitchPreference mForceRtlLayout;
    private ListPreference mDebugHwOverdraw;
    private ListPreference mDebugHwRenderer;
    private ListPreference mLogdSize;
    private ListPreference mLogpersist;
    private ListPreference mUsbConfiguration;
@@ -469,6 +471,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
        mDebugLayout = findAndInitSwitchPref(DEBUG_LAYOUT_KEY);
        mForceRtlLayout = findAndInitSwitchPref(FORCE_RTL_LAYOUT_KEY);
        mDebugHwOverdraw = addListPreference(DEBUG_HW_OVERDRAW_KEY);
        mDebugHwRenderer = addListPreference(DEBUG_HW_RENDERER_KEY);
        mWifiDisplayCertification = findAndInitSwitchPref(WIFI_DISPLAY_CERTIFICATION_KEY);
        mWifiVerboseLogging = findAndInitSwitchPref(WIFI_VERBOSE_LOGGING_KEY);
        mWifiAggressiveHandover = findAndInitSwitchPref(WIFI_AGGRESSIVE_HANDOVER_KEY);
@@ -779,6 +782,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
        updateShowHwScreenUpdatesOptions();
        updateShowHwLayersUpdatesOptions();
        updateDebugHwOverdrawOptions();
        updateDebugHwRendererOptions();
        updateDebugLayoutOptions();
        updateAnimationScaleOptions();
        updateOverlayDisplayDevicesOptions();
@@ -1323,6 +1327,31 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
        updateDebugHwOverdrawOptions();
    }

    private void updateDebugHwRendererOptions() {
        String value = SystemProperties.get(ThreadedRenderer.DEBUG_RENDERER_PROPERTY);
        if (value == null) {
            value = "";
        }

        CharSequence[] values = mDebugHwRenderer.getEntryValues();
        for (int i = 0; i < values.length; i++) {
            if (value.contentEquals(values[i])) {
                mDebugHwRenderer.setValueIndex(i);
                mDebugHwRenderer.setSummary(mDebugHwRenderer.getEntries()[i]);
                return;
            }
        }
        mDebugHwRenderer.setValueIndex(0);
        mDebugHwRenderer.setSummary(mDebugHwRenderer.getEntries()[0]);
    }

    private void writeDebugHwRendererOptions(Object newValue) {
        SystemProperties.set(ThreadedRenderer.DEBUG_RENDERER_PROPERTY,
                newValue == null ? "" : newValue.toString());
        pokeSystemProperties();
        updateDebugHwRendererOptions();
    }

    private void updateDebugLayoutOptions() {
        updateSwitchPreference(mDebugLayout,
                SystemProperties.getBoolean(View.DEBUG_LAYOUT_PROPERTY, false));
@@ -2544,6 +2573,9 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
        } else if (preference == mDebugHwOverdraw) {
            writeDebugHwOverdrawOptions(newValue);
            return true;
        } else if (preference == mDebugHwRenderer) {
            writeDebugHwRendererOptions(newValue);
            return true;
        } else if (preference == mShowNonRectClip) {
            writeShowNonRectClipOptions(newValue);
            return true;