From c1c3ecacac0fe8a689f7f0513b0ec7a5981f7147 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sun, 23 Oct 2022 10:14:23 +0200 Subject: [PATCH] Android: Add "Prefer VS for Point/Line Expansion" to GUI This adds PR 10890's new setting to the Android GUI. I'm curious to see if any Android users might get a performance improvement from it. Due to how our settings work on Android, I haven't implemented disabling the checkbox when the graphics backend doesn't support both GS and VS for point/line expansion, but I don't think that's critical to have. --- .../dolphinemu/features/settings/model/BooleanSetting.java | 2 ++ .../features/settings/ui/SettingsFragmentPresenter.java | 3 +++ Source/Android/app/src/main/res/values/strings.xml | 2 ++ 3 files changed, 7 insertions(+) diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java index 6f2816bf3f..21812df053 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.java @@ -202,6 +202,8 @@ public enum BooleanSetting implements AbstractBooleanSetting "WaitForShadersBeforeStarting", false), GFX_SAVE_TEXTURE_CACHE_TO_STATE(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS, "SaveTextureCacheToState", true), + GFX_PREFER_VS_FOR_LINE_POINT_EXPANSION(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS, + "PreferVSForLinePointExpansion", false), GFX_MODS_ENABLE(Settings.FILE_GFX, Settings.SECTION_GFX_SETTINGS, "EnableMods", false), GFX_ENHANCE_FORCE_FILTERING(Settings.FILE_GFX, Settings.SECTION_GFX_ENHANCEMENTS, diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java index 9a95b83afb..83f79b3aca 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.java @@ -824,6 +824,9 @@ public final class SettingsFragmentPresenter R.string.progressive_scan, 0)); sl.add(new CheckBoxSetting(mContext, BooleanSetting.GFX_BACKEND_MULTITHREADING, R.string.backend_multithreading, R.string.backend_multithreading_description)); + sl.add(new CheckBoxSetting(mContext, BooleanSetting.GFX_PREFER_VS_FOR_LINE_POINT_EXPANSION, + R.string.prefer_vs_for_point_line_expansion, + R.string.prefer_vs_for_point_line_expansion_description)); sl.add(new CheckBoxSetting(mContext, BooleanSetting.GFX_HACK_EFB_DEFER_INVALIDATION, R.string.defer_efb_invalidation, R.string.defer_efb_invalidation_description)); sl.add(new InvertedCheckBoxSetting(mContext, BooleanSetting.GFX_HACK_FAST_TEXTURE_SAMPLING, diff --git a/Source/Android/app/src/main/res/values/strings.xml b/Source/Android/app/src/main/res/values/strings.xml index 72c4d73356..55ea5827e6 100644 --- a/Source/Android/app/src/main/res/values/strings.xml +++ b/Source/Android/app/src/main/res/values/strings.xml @@ -341,6 +341,8 @@ Enable Progressive Scan Backend Multithreading Enables graphics backend multithreading (Vulkan only). May affect performance. If unsure, leave this checked. + Prefer VS for Point/Line Expansion + On backends that support both using the geometry shader and the vertex shader for expanding points and lines, selects the vertex shader for the job. May affect performance. Defer EFB Cache Invalidation Defers invalidation of the EFB access cache until a GPU synchronization command is executed. May improve performance in some games at the cost of stability. If unsure, leave this unchecked. Manual Texture Sampling