diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index c85b367db6..9b5654aa5a 100644 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h @@ -133,8 +133,6 @@ void TextureCache

::RunGarbageCollector() { if (True(image.flags & ImageFlagBits::IsDecoding)) { return false; } - const u64 safe_tick = 10; - const bool is_recently_allocated = image.allocation_tick > frame_tick - safe_tick; const bool is_large_sparse = image.info.is_sparse && image.guest_size_bytes >= 256_MiB; const bool must_download = image.IsSafeDownload() && False(image.flags & ImageFlagBits::BadOverlap); if (must_download && !is_large_sparse) { @@ -143,15 +141,14 @@ void TextureCache

::RunGarbageCollector() { image.DownloadMemory(map, copies); runtime.Finish(); SwizzleImage(*gpu_memory, image.gpu_addr, image.info, copies, map.mapped_span, swizzle_data_buffer); - } - if (is_recently_allocated) { - return false; + } else { + runtime.Finish(); } if (True(image.flags & ImageFlagBits::Tracked)) { UntrackImage(image, image_id); } UnregisterImage(image_id); - DeleteImage(image_id, image.scale_tick > frame_tick + safe_tick); + DeleteImage(image_id, image.scale_tick > frame_tick + 10); if (aggressive_mode && total_used_memory < critical_memory) { num_iterations >>= 2; aggressive_mode = false;