From cd394fc40f3847878e3646c07fa78a13df4cce30 Mon Sep 17 00:00:00 2001 From: CamilleLaVey Date: Sat, 12 Jul 2025 20:10:40 +0200 Subject: revert [android] Snapdragon 865 patches (#23) revert [android] Snapdragon 865 patches (#23) Co-authored-by: Aleksandr Popovich Reviewed-on: https://git.bixed.xyz/Bix/eden/pulls/23 Reverted due to heavy performance hits on Android with higher specifications, will be adjusted to be included in a specific build for older A6XX devices, as 855, 860, 865, 870, meanwhile it does fix critical issues with certain games crashing due to memory and VRAM usage, hits performance on SoC that can do it without this special flags. --- src/video_core/buffer_cache/buffer_cache.h | 10 ++-------- src/video_core/buffer_cache/buffer_cache_base.h | 18 +----------------- 2 files changed, 3 insertions(+), 25 deletions(-) (limited to 'src/video_core/buffer_cache') diff --git a/src/video_core/buffer_cache/buffer_cache.h b/src/video_core/buffer_cache/buffer_cache.h index e134e26e66..0ce2abc627 100644 --- a/src/video_core/buffer_cache/buffer_cache.h +++ b/src/video_core/buffer_cache/buffer_cache.h @@ -26,9 +26,7 @@ BufferCache

::BufferCache(Tegra::MaxwellDeviceMemoryManager& device_memory_, R void(slot_buffers.insert(runtime, NullBufferParams{})); gpu_modified_ranges.Clear(); inline_buffer_id = NULL_BUFFER_ID; -#ifdef ANDROID - 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; @@ -1385,8 +1383,6 @@ 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); - if (immediately_free) - runtime.Finish(); DeleteBuffer(overlap_id, true); } @@ -1678,9 +1674,7 @@ void BufferCache

::DeleteBuffer(BufferId buffer_id, bool do_not_mark) { } Unregister(buffer_id); - - if (!do_not_mark || !immediately_free) - delayed_destruction_ring.Push(std::move(slot_buffers[buffer_id])); + delayed_destruction_ring.Push(std::move(slot_buffers[buffer_id])); slot_buffers.erase(buffer_id); if constexpr (HAS_PERSISTENT_UNIFORM_BUFFER_BINDINGS) { diff --git a/src/video_core/buffer_cache/buffer_cache_base.h b/src/video_core/buffer_cache/buffer_cache_base.h index dbe44c875f..d45f595ea8 100644 --- a/src/video_core/buffer_cache/buffer_cache_base.h +++ b/src/video_core/buffer_cache/buffer_cache_base.h @@ -159,11 +159,7 @@ template class BufferCache : public VideoCommon::ChannelSetupCaches { // Page size for caching purposes. // This is unrelated to the CPU page size and it can be changed as it seems optimal. -#ifdef ANDROID - static constexpr u32 CACHING_PAGEBITS = 12; -#else static constexpr u32 CACHING_PAGEBITS = 16; -#endif static constexpr u64 CACHING_PAGESIZE = u64{1} << CACHING_PAGEBITS; static constexpr bool IS_OPENGL = P::IS_OPENGL; @@ -177,15 +173,9 @@ class BufferCache : public VideoCommon::ChannelSetupCaches slot_buffers; -#ifdef ANDROID - static constexpr size_t TICKS_TO_DESTROY = 6; -#else - static constexpr size_t TICKS_TO_DESTROY = 8; -#endif - DelayedDestructionRing delayed_destruction_ring; + DelayedDestructionRing delayed_destruction_ring; const Tegra::Engines::DrawManager::IndirectParams* current_draw_indirect{}; @@ -498,7 +483,6 @@ private: u64 minimum_memory = 0; u64 critical_memory = 0; BufferId inline_buffer_id; - bool immediately_free = false; std::array> CACHING_PAGEBITS)> page_table; Common::ScratchBuffer tmp_buffer; -- cgit v1.2.3