From 3346de365ae69c9a8ce4544a0926762738b00d34 Mon Sep 17 00:00:00 2001 From: Kelebek1 Date: Sat, 22 Apr 2023 14:02:10 +0100 Subject: Sort overlap_ids by modification tick before copy --- src/video_core/texture_cache/texture_cache.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index ed5c768d8..a1c2cc1d8 100644 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h @@ -1294,6 +1294,12 @@ ImageId TextureCache

::JoinImages(const ImageInfo& info, GPUVAddr gpu_addr, VA ScaleDown(new_image); } + std::ranges::sort(overlap_ids, [this](const ImageId lhs, const ImageId rhs) { + const ImageBase& lhs_image = slot_images[lhs]; + const ImageBase& rhs_image = slot_images[rhs]; + return lhs_image.modification_tick < rhs_image.modification_tick; + }); + for (const ImageId overlap_id : overlap_ids) { Image& overlap = slot_images[overlap_id]; if (True(overlap.flags & ImageFlagBits::GpuModified)) { -- cgit v1.2.3