From 6b7bedeb48d371cafbf0de3cbbd42bddc8b3f959 Mon Sep 17 00:00:00 2001 From: tomikun <60690056+alexytomi@users.noreply.github.com> Date: Wed, 2 Sep 2026 12:31:14 +0800 Subject: [PATCH] remove(Settings/MobileGlues): Multidraw emulation option I cannot be bothered to add in the benchmarker the plugin has nor the options for it. We're deprecating this soon anyway for MobileGL --- .../prefs/LauncherPreferences.java | 3 - ...herPreferenceRendererSettingsFragment.java | 80 +++++++------------ .../src/main/res/values/headings_array.xml | 15 ---- .../src/main/res/values/strings.xml | 3 - .../src/main/res/xml/pref_renderer.xml | 12 --- 5 files changed, 28 insertions(+), 85 deletions(-) diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferences.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferences.java index 33b097583..f73aaf638 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferences.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/LauncherPreferences.java @@ -253,9 +253,6 @@ public class LauncherPreferences { MGConfigJson.put("angleDepthClearFixMode", angleDepthClearFixMode); MGConfigJson.put("enableExtTimerQuery", timerQueryExt); MGConfigJson.put("enableExtDirectStateAccess", dsaExt); - if (DEFAULT_PREF.getBoolean("mg_renderer_multidrawCompute", false)) { - MGConfigJson.put("multidrawMode", 5); // Special handling for the (special mayhaps) compute emulation - } else MGConfigJson.put("multidrawMode", Integer.parseInt(DEFAULT_PREF.getString("mg_renderer_setting_multidraw", "0"))); MGConfigJson.put("maxGlslCacheSize", Integer.parseInt(DEFAULT_PREF.getString("mg_renderer_setting_glsl_cache_size", "128"))); File configFile = new File(Tools.DIR_DATA + "/MobileGlues", "config.json"); FileUtils.ensureParentDirectory(configFile); diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/screens/LauncherPreferenceRendererSettingsFragment.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/screens/LauncherPreferenceRendererSettingsFragment.java index 402180100..1e0bea955 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/screens/LauncherPreferenceRendererSettingsFragment.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/prefs/screens/LauncherPreferenceRendererSettingsFragment.java @@ -8,9 +8,6 @@ import android.text.Editable; import android.text.TextWatcher; import androidx.preference.EditTextPreference; -import androidx.preference.ListPreference; -import androidx.preference.Preference; -import androidx.preference.SwitchPreference; import net.kdt.pojavlaunch.R; @@ -18,69 +15,48 @@ import java.util.Objects; public class LauncherPreferenceRendererSettingsFragment extends LauncherPreferenceFragment { EditTextPreference GLSLCachePreference; - ListPreference MultiDrawEmulationPreference; - SwitchPreference ComputeMultiDrawPreference; - Preference.SummaryProvider MultiDrawSummaryProvider; @Override public void onCreatePreferences(Bundle b, String str) { addPreferencesFromResource(R.xml.pref_renderer); GLSLCachePreference = findPreference("mg_renderer_setting_glsl_cache_size"); - ComputeMultiDrawPreference = findPreference("mg_renderer_multidrawCompute"); - MultiDrawEmulationPreference = findPreference("mg_renderer_setting_multidraw"); - GLSLCachePreference.setOnBindEditTextListener((editText) -> { - editText.setInputType(TYPE_CLASS_NUMBER); - editText.addTextChangedListener(new TextWatcher() { - @Override - public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { - // Nothing, its boilerplate - } - - @Override - public void afterTextChanged(Editable editable) { - // Nothing, its boilerplate - } - - @Override - public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { - // This is just to handle the summary not updating when its above max int value - // Horrible I know. - if (editText.getText().toString().isEmpty()) { - editText.setText("0"); + if (GLSLCachePreference != null) { + GLSLCachePreference.setOnBindEditTextListener((editText) -> { + editText.setInputType(TYPE_CLASS_NUMBER); + editText.addTextChangedListener(new TextWatcher() { + @Override + public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { + // Nothing, its boilerplate } - try { - if (Long.parseLong(editText.getText().toString()) <= Integer.MAX_VALUE) return; - } catch (NumberFormatException ignored) {} - editText.setError(requireContext().getText(R.string.error_invalid_value)); - editText.setText(String.valueOf(Integer.MAX_VALUE)); - } + + @Override + public void afterTextChanged(Editable editable) { + // Nothing, its boilerplate + } + + @Override + public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { + // This is just to handle the summary not updating when its above max int value + // Horrible I know. + if (editText.getText().toString().isEmpty()) { + editText.setText("0"); + } + try { + if (Long.parseLong(editText.getText().toString()) <= Integer.MAX_VALUE) return; + } catch (NumberFormatException ignored) {} + editText.setError(requireContext().getText(R.string.error_invalid_value)); + editText.setText(String.valueOf(Integer.MAX_VALUE)); + } + }); }); - }); + } updateGLSLCacheSummary(); // Just updates the summary with the value when user opens the menu. Yes it's out of place. - updateMultiDrawSummary(); // Same as above } @Override public void onSharedPreferenceChanged(SharedPreferences p, String s) { GLSLCachePreference = findPreference("mg_renderer_setting_glsl_cache_size"); updateGLSLCacheSummary(); - updateMultiDrawSummary(); - } - - private void updateMultiDrawSummary() { - if (MultiDrawEmulationPreference != null) { - if (MultiDrawEmulationPreference.getSummaryProvider() != null) { - MultiDrawSummaryProvider = MultiDrawEmulationPreference.getSummaryProvider(); - } - if (ComputeMultiDrawPreference.isChecked()) { - MultiDrawEmulationPreference.setEnabled(false); - MultiDrawEmulationPreference.setSummaryProvider(null); - MultiDrawEmulationPreference.setSummary("(Experimental) Compute"); - } else if (MultiDrawEmulationPreference != null) { - MultiDrawEmulationPreference.setEnabled(true); - MultiDrawEmulationPreference.setSummaryProvider(MultiDrawSummaryProvider); - } - } } private void updateGLSLCacheSummary() { diff --git a/app_pojavlauncher/src/main/res/values/headings_array.xml b/app_pojavlauncher/src/main/res/values/headings_array.xml index 1b4f7d801..b99df12a2 100644 --- a/app_pojavlauncher/src/main/res/values/headings_array.xml +++ b/app_pojavlauncher/src/main/res/values/headings_array.xml @@ -64,21 +64,6 @@ 2 3 - - - Auto - Prefer Indirect - Prefer BaseVertex - Prefer MultiDraw Indirect - Force DrawElements - - - 0 - 1 - 2 - 3 - 4 - Auto Don\'t ignore diff --git a/app_pojavlauncher/src/main/res/values/strings.xml b/app_pojavlauncher/src/main/res/values/strings.xml index 19eb7f669..39b7d4b84 100644 --- a/app_pojavlauncher/src/main/res/values/strings.xml +++ b/app_pojavlauncher/src/main/res/values/strings.xml @@ -444,7 +444,6 @@ MobileGlues Renderer Settings Max GLSL cache size Use ANGLE as driver - Multidraw emulation mode Error Filtering Disable GPU Utilization in F3 menu Fixes random crashes when F3 is open on some Mali devices @@ -456,8 +455,6 @@ May help with mod crashes. Disable if not needed, can cause crashes. Advertise Experimental Compute Shader extension May help with shaderpack glitches. Disable if not needed, can cause crashes. - Use Compute Multidraw Emulation - Uses compute shaders for multidraw emulation Amethyst Only Vanilla 1.3.1 and above are supported on demo accounts Demo Profile not supported diff --git a/app_pojavlauncher/src/main/res/xml/pref_renderer.xml b/app_pojavlauncher/src/main/res/xml/pref_renderer.xml index 6d502738a..14b530186 100644 --- a/app_pojavlauncher/src/main/res/xml/pref_renderer.xml +++ b/app_pojavlauncher/src/main/res/xml/pref_renderer.xml @@ -17,13 +17,6 @@ android:entries="@array/mg_renderer_names_angle" android:entryValues="@array/mg_renderer_values_angle" app2:useSimpleSummaryProvider="true"/> - -