diff options
| author | 2023-05-24 22:12:32 -0700 | |
|---|---|---|
| committer | 2023-06-03 00:06:04 -0700 | |
| commit | b4725332a2ad8217e1b1afcfff7ccecc818c4e1c (patch) | |
| tree | 98e8ebadb32e0811270824715cf687a82e642202 /src/android | |
| parent | android: GPU: Enable async presentation, increase frames in flight. (diff) | |
| download | yuzu-b4725332a2ad8217e1b1afcfff7ccecc818c4e1c.tar.gz yuzu-b4725332a2ad8217e1b1afcfff7ccecc818c4e1c.tar.xz yuzu-b4725332a2ad8217e1b1afcfff7ccecc818c4e1c.zip | |
android: config: Expose VSync as a configurable setting.
Diffstat (limited to 'src/android')
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> |