Просмотр исходного кода

Merge pull request #13171 from liamwhite/fake-address

texture_cache: do not track invalid addresses
liamwhite 2 лет назад
Родитель
Сommit
f1b1530249
1 измененных файлов с 6 добавлено и 2 удалено
  1. 6 2
      src/video_core/texture_cache/texture_cache.h

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

@@ -2114,7 +2114,9 @@ void TextureCache<P>::TrackImage(ImageBase& image, ImageId image_id) {
     ASSERT(False(image.flags & ImageFlagBits::Tracked));
     image.flags |= ImageFlagBits::Tracked;
     if (False(image.flags & ImageFlagBits::Sparse)) {
-        device_memory.UpdatePagesCachedCount(image.cpu_addr, image.guest_size_bytes, 1);
+        if (image.cpu_addr < ~(1ULL << 40)) {
+            device_memory.UpdatePagesCachedCount(image.cpu_addr, image.guest_size_bytes, 1);
+        }
         return;
     }
     if (True(image.flags & ImageFlagBits::Registered)) {
@@ -2140,7 +2142,9 @@ void TextureCache<P>::UntrackImage(ImageBase& image, ImageId image_id) {
     ASSERT(True(image.flags & ImageFlagBits::Tracked));
     image.flags &= ~ImageFlagBits::Tracked;
     if (False(image.flags & ImageFlagBits::Sparse)) {
-        device_memory.UpdatePagesCachedCount(image.cpu_addr, image.guest_size_bytes, -1);
+        if (image.cpu_addr < ~(1ULL << 40)) {
+            device_memory.UpdatePagesCachedCount(image.cpu_addr, image.guest_size_bytes, -1);
+        }
         return;
     }
     ASSERT(True(image.flags & ImageFlagBits::Registered));