Răsfoiți Sursa

Merge pull request #10081 from Kelebek1/copy_overlap_tick

Sort overlap_ids by modification tick before copy
liamwhite 3 ani în urmă
părinte
comite
0c5bdc7241
1 a modificat fișierele cu 6 adăugiri și 0 ștergeri
  1. 6 0
      src/video_core/texture_cache/texture_cache.h

+ 6 - 0
src/video_core/texture_cache/texture_cache.h

@@ -1359,6 +1359,12 @@ ImageId TextureCache<P>::JoinImages(const ImageInfo& info, GPUVAddr gpu_addr, VA
         ScaleDown(new_image);
         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) {
     for (const ImageId overlap_id : overlap_ids) {
         Image& overlap = slot_images[overlap_id];
         Image& overlap = slot_images[overlap_id];
         if (True(overlap.flags & ImageFlagBits::GpuModified)) {
         if (True(overlap.flags & ImageFlagBits::GpuModified)) {