From 191dd892e57abad3c56f939e83514ab16dec64ed Mon Sep 17 00:00:00 2001 From: Bix Date: Sun, 5 Oct 2025 05:41:20 +0200 Subject: [android] Legacy build flavor (#51) This adds a "legacy" build flavor, similar to the genshinSpoof flavor. The legacy flavor uses a white icon bg, alongside building with `YUZU_LEGACY=ON`, which applies the previously-made SD865 patches iff that value is truthy. Co-authored-by: Bixthefin <114880614+Bixthefin@users.noreply.github.com> Co-authored-by: Calchan Co-authored-by: crueter Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/51 Reviewed-by: MaranBr Reviewed-by: CamilleLaVey Reviewed-by: crueter Co-authored-by: Bix Co-committed-by: Bix --- src/video_core/buffer_cache/buffer_cache.h | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'src/video_core/buffer_cache/buffer_cache.h') diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h index 6f6e0c23a8..5223afe937 100644 --- a/src/video_core/buffer_cache/buffer_cache.h +++ b/src/video_core/buffer_cache/buffer_cache.h @@ -26,7 +26,9 @@ BufferCache

::BufferCache(Tegra::MaxwellDeviceMemoryManager& device_memory_, R void(slot_buffers.insert(runtime, NullBufferParams{})); gpu_modified_ranges.Clear(); inline_buffer_id = NULL_BUFFER_ID; - +#ifdef YUZU_LEGACY + immediately_free = (Settings::values.vram_usage_mode.GetValue() == Settings::VramUsageMode::Aggressive); +#endif if (!runtime.CanReportMemoryUsage()) { minimum_memory = DEFAULT_EXPECTED_MEMORY; critical_memory = DEFAULT_CRITICAL_MEMORY; @@ -1378,6 +1380,10 @@ void BufferCache

::JoinOverlap(BufferId new_buffer_id, BufferId overlap_id, }); new_buffer.MarkUsage(copies[0].dst_offset, copies[0].size); runtime.CopyBuffer(new_buffer, overlap, copies, true); +#ifdef YUZU_LEGACY + if (immediately_free) + runtime.Finish(); +#endif DeleteBuffer(overlap_id, true); } @@ -1668,7 +1674,12 @@ void BufferCache

::DeleteBuffer(BufferId buffer_id, bool do_not_mark) { } Unregister(buffer_id); - delayed_destruction_ring.Push(std::move(slot_buffers[buffer_id])); + +#ifdef YUZU_LEGACY + if (!do_not_mark || !immediately_free) +#endif + delayed_destruction_ring.Push(std::move(slot_buffers[buffer_id])); + slot_buffers.erase(buffer_id); if constexpr (HAS_PERSISTENT_UNIFORM_BUFFER_BINDINGS) { -- cgit v1.2.3