summaryrefslogtreecommitdiff
path: root/src/android
diff options
context:
space:
mode:
authorGravatar bunnei2023-05-24 22:12:32 -0700
committerGravatar bunnei2023-06-03 00:06:04 -0700
commitb4725332a2ad8217e1b1afcfff7ccecc818c4e1c (patch)
tree98e8ebadb32e0811270824715cf687a82e642202 /src/android
parentandroid: GPU: Enable async presentation, increase frames in flight. (diff)
downloadyuzu-b4725332a2ad8217e1b1afcfff7ccecc818c4e1c.tar.gz
yuzu-b4725332a2ad8217e1b1afcfff7ccecc818c4e1c.tar.xz
yuzu-b4725332a2ad8217e1b1afcfff7ccecc818c4e1c.zip
android: config: Expose VSync as a configurable setting.
Diffstat (limited to 'src/android')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt8
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt11
-rw-r--r--src/android/app/src/main/jni/config.cpp13
-rw-r--r--src/android/app/src/main/res/values/arrays.xml14
-rw-r--r--src/android/app/src/main/res/values/strings.xml7
5 files changed, 44 insertions, 9 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt
index c07e566fe..c5722a5a1 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/IntSetting.kt
@@ -73,6 +73,11 @@ enum class IntSetting(
73 Settings.SECTION_RENDERER, 73 Settings.SECTION_RENDERER,
74 2 74 2
75 ), 75 ),
76 RENDERER_VSYNC(
77 "use_vsync",
78 Settings.SECTION_RENDERER,
79 0
80 ),
76 RENDERER_SCALING_FILTER( 81 RENDERER_SCALING_FILTER(
77 "scaling_filter", 82 "scaling_filter",
78 Settings.SECTION_RENDERER, 83 Settings.SECTION_RENDERER,
@@ -115,7 +120,8 @@ enum class IntSetting(
115 RENDERER_ASYNCHRONOUS_SHADERS, 120 RENDERER_ASYNCHRONOUS_SHADERS,
116 RENDERER_DEBUG, 121 RENDERER_DEBUG,
117 RENDERER_BACKEND, 122 RENDERER_BACKEND,
118 RENDERER_RESOLUTION 123 RENDERER_RESOLUTION,
124 RENDERER_VSYNC
119 ) 125 )
120 126
121 fun from(key: String): IntSetting? = IntSetting.values().firstOrNull { it.key == key } 127 fun from(key: String): IntSetting? = IntSetting.values().firstOrNull { it.key == key }
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt
index 5b4272a74..14ae513e2 100644
--- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/ui/SettingsFragmentPresenter.kt
@@ -251,6 +251,17 @@ class SettingsFragmentPresenter(private val fragmentView: SettingsFragmentView)
251 ) 251 )
252 add( 252 add(
253 SingleChoiceSetting( 253 SingleChoiceSetting(
254 IntSetting.RENDERER_VSYNC,
255 R.string.renderer_vsync,
256 0,
257 R.array.rendererVSyncNames,
258 R.array.rendererVSyncValues,
259 IntSetting.RENDERER_VSYNC.key,
260 IntSetting.RENDERER_VSYNC.defaultValue
261 )
262 )
263 add(
264 SingleChoiceSetting(
254 IntSetting.RENDERER_SCALING_FILTER, 265 IntSetting.RENDERER_SCALING_FILTER,
255 R.string.renderer_scaling_filter, 266 R.string.renderer_scaling_filter,
256 0, 267 0,
diff --git a/src/android/app/src/main/jni/config.cpp b/src/android/app/src/main/jni/config.cpp
index b3aa9071b..6b4c08145 100644
--- a/src/android/app/src/main/jni/config.cpp
+++ b/src/android/app/src/main/jni/config.cpp
@@ -210,27 +210,24 @@ void Config::ReadValues() {
210 ReadSetting("Renderer", Settings::values.speed_limit); 210 ReadSetting("Renderer", Settings::values.speed_limit);
211 ReadSetting("Renderer", Settings::values.use_disk_shader_cache); 211 ReadSetting("Renderer", Settings::values.use_disk_shader_cache);
212 ReadSetting("Renderer", Settings::values.use_asynchronous_gpu_emulation); 212 ReadSetting("Renderer", Settings::values.use_asynchronous_gpu_emulation);
213 ReadSetting("Renderer", Settings::values.vsync_mode);
213 ReadSetting("Renderer", Settings::values.shader_backend); 214 ReadSetting("Renderer", Settings::values.shader_backend);
214 ReadSetting("Renderer", Settings::values.use_asynchronous_shaders); 215 ReadSetting("Renderer", Settings::values.use_asynchronous_shaders);
215 ReadSetting("Renderer", Settings::values.nvdec_emulation); 216 ReadSetting("Renderer", Settings::values.nvdec_emulation);
216 ReadSetting("Renderer", Settings::values.use_fast_gpu_time); 217 ReadSetting("Renderer", Settings::values.use_fast_gpu_time);
217 ReadSetting("Renderer", Settings::values.use_vulkan_driver_pipeline_cache); 218 ReadSetting("Renderer", Settings::values.use_vulkan_driver_pipeline_cache);
218 219
220 ReadSetting("Renderer", Settings::values.bg_red);
221 ReadSetting("Renderer", Settings::values.bg_green);
222 ReadSetting("Renderer", Settings::values.bg_blue);
223
219 // Use GPU accuracy normal by default on Android 224 // Use GPU accuracy normal by default on Android
220 Settings::values.gpu_accuracy = static_cast<Settings::GPUAccuracy>(config->GetInteger( 225 Settings::values.gpu_accuracy = static_cast<Settings::GPUAccuracy>(config->GetInteger(
221 "Renderer", "gpu_accuracy", static_cast<u32>(Settings::GPUAccuracy::Normal))); 226 "Renderer", "gpu_accuracy", static_cast<u32>(Settings::GPUAccuracy::Normal)));
222 227
223 // Use Mailbox VSync by default on Android
224 Settings::values.vsync_mode = static_cast<Settings::VSyncMode>(config->GetInteger(
225 "Renderer", "use_vsync", static_cast<u32>(Settings::VSyncMode::Mailbox)));
226
227 // Use GPU default anisotropic filtering on Android 228 // Use GPU default anisotropic filtering on Android
228 Settings::values.max_anisotropy = config->GetInteger("Renderer", "max_anisotropy", 1); 229 Settings::values.max_anisotropy = config->GetInteger("Renderer", "max_anisotropy", 1);
229 230
230 ReadSetting("Renderer", Settings::values.bg_red);
231 ReadSetting("Renderer", Settings::values.bg_green);
232 ReadSetting("Renderer", Settings::values.bg_blue);
233
234 // Disable ASTC compute by default on Android 231 // Disable ASTC compute by default on Android
235 Settings::values.accelerate_astc = config->GetBoolean("Renderer", "accelerate_astc", false); 232 Settings::values.accelerate_astc = config->GetBoolean("Renderer", "accelerate_astc", false);
236 233
diff --git a/src/android/app/src/main/res/values/arrays.xml b/src/android/app/src/main/res/values/arrays.xml
index ce9a576c2..fa88770c8 100644
--- a/src/android/app/src/main/res/values/arrays.xml
+++ b/src/android/app/src/main/res/values/arrays.xml
@@ -96,6 +96,13 @@
96 <item>@string/resolution_four</item> 96 <item>@string/resolution_four</item>
97 </string-array> 97 </string-array>
98 98
99 <string-array name="rendererVSyncNames">
100 <item>@string/renderer_vsync_immediate</item>
101 <item>@string/renderer_vsync_mailbox</item>
102 <item>@string/renderer_vsync_fifo</item>
103 <item>@string/renderer_vsync_fifo_relaxed</item>
104 </string-array>
105
99 <integer-array name="rendererResolutionValues"> 106 <integer-array name="rendererResolutionValues">
100 <item>0</item> 107 <item>0</item>
101 <item>1</item> 108 <item>1</item>
@@ -105,6 +112,13 @@
105 <item>5</item> 112 <item>5</item>
106 </integer-array> 113 </integer-array>
107 114
115 <integer-array name="rendererVSyncValues">
116 <item>0</item>
117 <item>1</item>
118 <item>2</item>
119 <item>3</item>
120 </integer-array>
121
108 <string-array name="rendererAspectRatioNames"> 122 <string-array name="rendererAspectRatioNames">
109 <item>@string/ratio_default</item> 123 <item>@string/ratio_default</item>
110 <item>@string/ratio_force_four_three</item> 124 <item>@string/ratio_force_four_three</item>
diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml
index 6e4b1e630..87e07b581 100644
--- a/src/android/app/src/main/res/values/strings.xml
+++ b/src/android/app/src/main/res/values/strings.xml
@@ -122,6 +122,7 @@
122 <string name="renderer_api">API</string> 122 <string name="renderer_api">API</string>
123 <string name="renderer_accuracy">Accuracy level</string> 123 <string name="renderer_accuracy">Accuracy level</string>
124 <string name="renderer_resolution">Resolution</string> 124 <string name="renderer_resolution">Resolution</string>
125 <string name="renderer_vsync">VSync mode</string>
125 <string name="renderer_aspect_ratio">Aspect Ratio</string> 126 <string name="renderer_aspect_ratio">Aspect Ratio</string>
126 <string name="renderer_scaling_filter">Window Adapting Filter</string> 127 <string name="renderer_scaling_filter">Window Adapting Filter</string>
127 <string name="renderer_anti_aliasing">Anti-Aliasing Method</string> 128 <string name="renderer_anti_aliasing">Anti-Aliasing Method</string>
@@ -259,6 +260,12 @@
259 <string name="resolution_three">3X (2160p/3240p) (Slow)</string> 260 <string name="resolution_three">3X (2160p/3240p) (Slow)</string>
260 <string name="resolution_four">4X (2880p/4320p) (Slow)</string> 261 <string name="resolution_four">4X (2880p/4320p) (Slow)</string>
261 262
263 <!-- Renderer VSync -->
264 <string name="renderer_vsync_immediate">Immediate (Off)</string>
265 <string name="renderer_vsync_mailbox">Mailbox</string>
266 <string name="renderer_vsync_fifo">FIFO (On)</string>
267 <string name="renderer_vsync_fifo_relaxed">FIFO Relaxed</string>
268
262 <!-- Scaling Filters --> 269 <!-- Scaling Filters -->
263 <string name="scaling_filter_nearest_neighbor">Nearest Neighbor</string> 270 <string name="scaling_filter_nearest_neighbor">Nearest Neighbor</string>
264 <string name="scaling_filter_bilinear">Bilinear</string> 271 <string name="scaling_filter_bilinear">Bilinear</string>