From d342204e5d9ad15b45d68265872879a9c1fceefd Mon Sep 17 00:00:00 2001 From: crueter Date: Thu, 14 Aug 2025 20:17:53 -0400 Subject: [PATCH] [frontend] fix frame skip setting prsentation Signed-off-by: crueter --- .../features/settings/model/BooleanSetting.kt | 1 + .../features/settings/model/IntSetting.kt | 1 - .../settings/model/view/SettingsItem.kt | 6 ++---- .../settings/ui/SettingsFragmentPresenter.kt | 2 +- src/android/app/src/main/res/values/arrays.xml | 12 ------------ .../app/src/main/res/values/strings.xml | 4 ++-- src/common/settings.h | 3 +-- src/yuzu/configuration/shared_translation.cpp | 18 ++++++++++++------ 8 files changed, 19 insertions(+), 28 deletions(-) diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt index f6c222479c..3af07c6c02 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/BooleanSetting.kt @@ -32,6 +32,7 @@ enum class BooleanSetting(override val key: String) : AbstractBooleanSetting { RENDERER_DESCRIPTOR_INDEXING("descriptor_indexing"), RENDERER_SAMPLE_SHADING("sample_shading"), PICTURE_IN_PICTURE("picture_in_picture"), + FRAME_SKIPPING("frame_skipping"), USE_CUSTOM_RTC("custom_rtc_enabled"), BLACK_BACKGROUNDS("black_backgrounds"), JOYSTICK_REL_CENTER("joystick_rel_center"), 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 9cb1adb581..d53aa46265 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 @@ -42,7 +42,6 @@ enum class IntSetting(override val key: String) : AbstractIntSetting { RENDERER_SAMPLE_SHADING_FRACTION("sample_shading_fraction"), FAST_CPU_TIME("fast_cpu_time"), CPU_TICKS("cpu_ticks"), - FRAME_SKIPPING("frame_skipping"), FAST_GPU_TIME("fast_gpu_time"), BAT_TEMPERATURE_UNIT("bat_temperature_unit"), CABINET_APPLET("cabinet_applet_mode"), diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt index c2fa66e6ce..a940d2fca2 100644 --- a/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt +++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/features/settings/model/view/SettingsItem.kt @@ -243,12 +243,10 @@ abstract class SettingsItem( ) ) put( - SingleChoiceSetting( - IntSetting.FRAME_SKIPPING, + SwitchSetting( + BooleanSetting.FRAME_SKIPPING, titleId = R.string.frame_skipping, descriptionId = R.string.frame_skipping_description, - choicesId = R.array.frameSkippingNames, - valuesId = R.array.frameSkippingValues ) ) put( 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 ee8140d199..a5daa9027f 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 @@ -450,7 +450,7 @@ class SettingsFragmentPresenter( add(BooleanSetting.RENDERER_EARLY_RELEASE_FENCES.key) add(BooleanSetting.BUFFER_REORDER_DISABLE.key) add(BooleanSetting.FRAME_INTERPOLATION.key) - add(IntSetting.FRAME_SKIPPING.key) + add(BooleanSetting.FRAME_SKIPPING.key) add(BooleanSetting.RENDERER_FAST_GPU.key) add(IntSetting.FAST_GPU_TIME.key) add(IntSetting.RENDERER_SHADER_BACKEND.key) diff --git a/src/android/app/src/main/res/values/arrays.xml b/src/android/app/src/main/res/values/arrays.xml index a5ab9bc3d9..602003cf8a 100644 --- a/src/android/app/src/main/res/values/arrays.xml +++ b/src/android/app/src/main/res/values/arrays.xml @@ -21,18 +21,6 @@ 1 - - @string/disabled - 1 - 2 - - - - 0 - 1 - 2 - - @string/memory_4gb @string/memory_6gb diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index d649ba08ac..fa54f9cfa7 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml @@ -482,8 +482,8 @@ Display Post-Processing - WIP: Frameskip - Toggle frame skipping to improve performance by reducing the number of rendered frames. This feature is still being worked on and will be enabled in future releases. + Frame Skipping + Toggle frame skipping to improve performance by reducing the number of rendered frames. Accuracy level Resolution (Handheld/Docked) VSync mode diff --git a/src/common/settings.h b/src/common/settings.h index 61f79163b9..5a089507f6 100644 --- a/src/common/settings.h +++ b/src/common/settings.h @@ -326,8 +326,7 @@ struct Values { SwitchableSetting frame_interpolation{linkage, true, "frame_interpolation", Category::Renderer, Specialization::RuntimeList}; #endif - SwitchableSetting frame_skipping{linkage, false, "frame_skipping", Category::Renderer, - Specialization::RuntimeList}; + SwitchableSetting frame_skipping{linkage, false, "frame_skipping", Category::Renderer}; SwitchableSetting use_disk_shader_cache{linkage, true, "use_disk_shader_cache", Category::Renderer}; SwitchableSetting optimize_spirv_output{linkage, diff --git a/src/yuzu/configuration/shared_translation.cpp b/src/yuzu/configuration/shared_translation.cpp index 22f1921dbf..dbc6b35ddd 100644 --- a/src/yuzu/configuration/shared_translation.cpp +++ b/src/yuzu/configuration/shared_translation.cpp @@ -269,6 +269,18 @@ std::unique_ptr InitializeTranslations(QWidget* parent) INSERT(Settings, bg_blue, QString(), QString()); // Renderer (Advanced Graphics) + INSERT(Settings, + enable_raii, + tr("RAII"), + tr("A method of automatic resource management in Vulkan " + "that ensures proper release of resources " + "when they are no longer needed, but may cause crashes in bundled games.")); + INSERT(Settings, + frame_skipping, + tr("Frame Skipping"), + tr("Skips rendering every other frame while still presenting " + "the frame as rendered.\nThis cuts the effective FPS in half, but can make " + "games run stable at the game's target FPS on weaker hardware.")); INSERT(Settings, async_presentation, tr("Enable asynchronous presentation (Vulkan only)"), @@ -335,12 +347,6 @@ std::unique_ptr InitializeTranslations(QWidget* parent) tr("Improves rendering of transparency effects in specific games.")); // Renderer (Extensions) - INSERT(Settings, - enable_raii, - tr("RAII"), - tr("A method of automatic resource management in Vulkan " - "that ensures proper release of resources " - "when they are no longer needed, but may cause crashes in bundled games.")); INSERT(Settings, dyna_state, tr("Extended Dynamic State"),