diff options
author | Liam <[email protected]> | 2024-02-26 09:51:19 -0500 |
---|---|---|
committer | Liam <[email protected]> | 2024-02-26 10:26:27 -0500 |
commit | fd9ed54f279e40a415075c4ae748bef7c5ceb1ff (patch) | |
tree | e5abe6770723f20c2c4f66f4394e2cf2cdc828dc | |
parent | f9bfdb15559c7ce447151162af61cc69efcbec01 (diff) | |
download | yuzu-mainline-fd9ed54f279e40a415075c4ae748bef7c5ceb1ff.tar.gz yuzu-mainline-fd9ed54f279e40a415075c4ae748bef7c5ceb1ff.zip |
texture_cache: do not track invalid addresses
-rw-r--r-- | src/video_core/texture_cache/texture_cache.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index 53b4876f2..bfd3d00b6 100644 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h @@ -2098,7 +2098,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)) { @@ -2124,7 +2126,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)); |