From d5ba8ea9d38f72f5444c8326e54f863b6a05fc58 Mon Sep 17 00:00:00 2001 From: Aleksandr Popovich Date: Wed, 24 Sep 2025 14:35:18 -0400 Subject: [PATCH 1/5] [frontend] add 1.25x resolution option Signed-off-by: Aleksandr Popovich --- src/android/app/src/main/res/values/arrays.xml | 1 + src/android/app/src/main/res/values/strings.xml | 1 + src/common/settings.cpp | 4 ++++ src/common/settings_enums.h | 1 + src/qt_common/shared_translation.cpp | 1 + 5 files changed, 8 insertions(+) diff --git a/src/android/app/src/main/res/values/arrays.xml b/src/android/app/src/main/res/values/arrays.xml index 08ca53ad81..274326d495 100644 --- a/src/android/app/src/main/res/values/arrays.xml +++ b/src/android/app/src/main/res/values/arrays.xml @@ -180,6 +180,7 @@ @string/resolution_half @string/resolution_three_quarter @string/resolution_one + @string/resolution_five_quarter @string/resolution_three_half @string/resolution_two @string/resolution_three diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index 48ea3ed99b..b456768a23 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml @@ -977,6 +977,7 @@ 0.5X (360p/540p) 0.75X (540p/810p) 1X (720p/1080p) + 1.25X (900p/1350p) 1.5X (1080p/1620p) 2X (1440p/2160p) (Slow) 3X (2160p/3240p) (Slow) diff --git a/src/common/settings.cpp b/src/common/settings.cpp index b41f4c75f5..b849d7cb6a 100644 --- a/src/common/settings.cpp +++ b/src/common/settings.cpp @@ -301,6 +301,10 @@ void TranslateResolutionInfo(ResolutionSetup setup, ResolutionScalingInfo& info) info.up_scale = 3; info.down_shift = 1; break; + case ResolutionSetup::Res5_4X: + info.up_scale = 5; + info.down_shift = 2; + break; case ResolutionSetup::Res2X: info.up_scale = 2; info.down_shift = 0; diff --git a/src/common/settings_enums.h b/src/common/settings_enums.h index ebfa4ceb9e..ecf2bbcea2 100644 --- a/src/common/settings_enums.h +++ b/src/common/settings_enums.h @@ -157,6 +157,7 @@ ENUM(ResolutionSetup, Res1_2X, Res3_4X, Res1X, + Res5_4X, Res3_2X, Res2X, Res3X, diff --git a/src/qt_common/shared_translation.cpp b/src/qt_common/shared_translation.cpp index 98a55e1fcf..7375473710 100644 --- a/src/qt_common/shared_translation.cpp +++ b/src/qt_common/shared_translation.cpp @@ -556,6 +556,7 @@ std::unique_ptr ComboboxEnumeration(QObject* parent) PAIR(ResolutionSetup, Res1_2X, tr("0.5X (360p/540p) [EXPERIMENTAL]")), PAIR(ResolutionSetup, Res3_4X, tr("0.75X (540p/810p) [EXPERIMENTAL]")), PAIR(ResolutionSetup, Res1X, tr("1X (720p/1080p)")), + PAIR(ResolutionSetup, Res5_4X, tr("1.25X (900p/1350p) [EXPERIMENTAL]")), PAIR(ResolutionSetup, Res3_2X, tr("1.5X (1080p/1620p) [EXPERIMENTAL]")), PAIR(ResolutionSetup, Res2X, tr("2X (1440p/2160p)")), PAIR(ResolutionSetup, Res3X, tr("3X (2160p/3240p)")), From 18b32adf44e085c00c660dfbfff85c0066b31fba Mon Sep 17 00:00:00 2001 From: crueter Date: Fri, 26 Sep 2025 19:18:08 -0400 Subject: [PATCH 2/5] [android] add 1.25x option to values Signed-off-by: crueter --- src/android/app/src/main/res/values/arrays.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/android/app/src/main/res/values/arrays.xml b/src/android/app/src/main/res/values/arrays.xml index 274326d495..123269d009 100644 --- a/src/android/app/src/main/res/values/arrays.xml +++ b/src/android/app/src/main/res/values/arrays.xml @@ -203,6 +203,7 @@ 5 6 7 + 8 From c725641f13772aa7d5705227e8fbe2c5b85ebb6a Mon Sep 17 00:00:00 2001 From: MaranBr Date: Sun, 28 Sep 2025 07:29:19 +0200 Subject: [PATCH 3/5] [video_core] Fix fast buffers without performance loss (#2605) Fixes games that have some elements flickering on the screen, such as Kirby Star Allies and others, without impacting performance. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2605 Reviewed-by: CamilleLaVey Reviewed-by: Lizzie Co-authored-by: MaranBr Co-committed-by: MaranBr --- src/video_core/buffer_cache/buffer_cache.h | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h index eb18a4bd66..6f6e0c23a8 100644 --- a/src/video_core/buffer_cache/buffer_cache.h +++ b/src/video_core/buffer_cache/buffer_cache.h @@ -785,18 +785,13 @@ void BufferCache

::BindHostGraphicsUniformBuffers(size_t stage) { } template -void BufferCache

::BindHostGraphicsUniformBuffer(size_t stage, u32 index, u32 binding_index, - bool needs_bind) { +void BufferCache

::BindHostGraphicsUniformBuffer(size_t stage, u32 index, u32 binding_index, bool needs_bind) { + ++channel_state->uniform_cache_shots[0]; const Binding& binding = channel_state->uniform_buffers[stage][index]; const DAddr device_addr = binding.device_addr; const u32 size = (std::min)(binding.size, (*channel_state->uniform_buffer_sizes)[stage][index]); Buffer& buffer = slot_buffers[binding.buffer_id]; TouchBuffer(buffer, binding.buffer_id); - const bool sync_buffer = SynchronizeBuffer(buffer, device_addr, size); - if (sync_buffer) { - ++channel_state->uniform_cache_hits[0]; - } - ++channel_state->uniform_cache_shots[0]; const bool use_fast_buffer = binding.buffer_id != NULL_BUFFER_ID && size <= channel_state->uniform_buffer_skip_cache_size && !memory_tracker.IsRegionGpuModified(device_addr, size); @@ -827,7 +822,10 @@ void BufferCache

::BindHostGraphicsUniformBuffer(size_t stage, u32 index, u32 device_memory.ReadBlockUnsafe(device_addr, span.data(), size); return; } - + // Classic cached path + if (SynchronizeBuffer(buffer, device_addr, size)) { + ++channel_state->uniform_cache_hits[0]; + } // Skip binding if it's not needed and if the bound buffer is not the fast version // This exists to avoid instances where the fast buffer is bound and a GPU write happens needs_bind |= HasFastUniformBufferBound(stage, binding_index); From d87413e18ef5ba988b2cd73bda3824f94aa45af2 Mon Sep 17 00:00:00 2001 From: Aleksandr Popovich Date: Wed, 24 Sep 2025 14:35:18 -0400 Subject: [PATCH 4/5] [frontend] add 1.25x resolution option Signed-off-by: Aleksandr Popovich --- src/android/app/src/main/res/values/arrays.xml | 1 + src/android/app/src/main/res/values/strings.xml | 1 + src/common/settings.cpp | 4 ++++ src/common/settings_enums.h | 1 + src/qt_common/shared_translation.cpp | 1 + 5 files changed, 8 insertions(+) diff --git a/src/android/app/src/main/res/values/arrays.xml b/src/android/app/src/main/res/values/arrays.xml index 08ca53ad81..274326d495 100644 --- a/src/android/app/src/main/res/values/arrays.xml +++ b/src/android/app/src/main/res/values/arrays.xml @@ -180,6 +180,7 @@ @string/resolution_half @string/resolution_three_quarter @string/resolution_one + @string/resolution_five_quarter @string/resolution_three_half @string/resolution_two @string/resolution_three diff --git a/src/android/app/src/main/res/values/strings.xml b/src/android/app/src/main/res/values/strings.xml index 48ea3ed99b..b456768a23 100644 --- a/src/android/app/src/main/res/values/strings.xml +++ b/src/android/app/src/main/res/values/strings.xml @@ -977,6 +977,7 @@ 0.5X (360p/540p) 0.75X (540p/810p) 1X (720p/1080p) + 1.25X (900p/1350p) 1.5X (1080p/1620p) 2X (1440p/2160p) (Slow) 3X (2160p/3240p) (Slow) diff --git a/src/common/settings.cpp b/src/common/settings.cpp index b41f4c75f5..b849d7cb6a 100644 --- a/src/common/settings.cpp +++ b/src/common/settings.cpp @@ -301,6 +301,10 @@ void TranslateResolutionInfo(ResolutionSetup setup, ResolutionScalingInfo& info) info.up_scale = 3; info.down_shift = 1; break; + case ResolutionSetup::Res5_4X: + info.up_scale = 5; + info.down_shift = 2; + break; case ResolutionSetup::Res2X: info.up_scale = 2; info.down_shift = 0; diff --git a/src/common/settings_enums.h b/src/common/settings_enums.h index ebfa4ceb9e..ecf2bbcea2 100644 --- a/src/common/settings_enums.h +++ b/src/common/settings_enums.h @@ -157,6 +157,7 @@ ENUM(ResolutionSetup, Res1_2X, Res3_4X, Res1X, + Res5_4X, Res3_2X, Res2X, Res3X, diff --git a/src/qt_common/shared_translation.cpp b/src/qt_common/shared_translation.cpp index 98a55e1fcf..7375473710 100644 --- a/src/qt_common/shared_translation.cpp +++ b/src/qt_common/shared_translation.cpp @@ -556,6 +556,7 @@ std::unique_ptr ComboboxEnumeration(QObject* parent) PAIR(ResolutionSetup, Res1_2X, tr("0.5X (360p/540p) [EXPERIMENTAL]")), PAIR(ResolutionSetup, Res3_4X, tr("0.75X (540p/810p) [EXPERIMENTAL]")), PAIR(ResolutionSetup, Res1X, tr("1X (720p/1080p)")), + PAIR(ResolutionSetup, Res5_4X, tr("1.25X (900p/1350p) [EXPERIMENTAL]")), PAIR(ResolutionSetup, Res3_2X, tr("1.5X (1080p/1620p) [EXPERIMENTAL]")), PAIR(ResolutionSetup, Res2X, tr("2X (1440p/2160p)")), PAIR(ResolutionSetup, Res3X, tr("3X (2160p/3240p)")), From 1a570d8b102135db6c4d87f8e1b919e578d0ed23 Mon Sep 17 00:00:00 2001 From: crueter Date: Fri, 26 Sep 2025 19:18:08 -0400 Subject: [PATCH 5/5] [android] add 1.25x option to values Signed-off-by: crueter --- src/android/app/src/main/res/values/arrays.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/android/app/src/main/res/values/arrays.xml b/src/android/app/src/main/res/values/arrays.xml index 274326d495..123269d009 100644 --- a/src/android/app/src/main/res/values/arrays.xml +++ b/src/android/app/src/main/res/values/arrays.xml @@ -203,6 +203,7 @@ 5 6 7 + 8