diff options
author | liamwhite <liamwhite@users.noreply.github.com> | 2024-02-27 15:42:46 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-27 15:42:46 +0100 |
commit | f1b15302498bd3f8d77af266e404456e59ea5a76 (patch) | |
tree | 608a399704cff022cc043ff324622d490f9c2be0 /src/video_core/texture_cache | |
parent | general: workarounds for SMMU syncing issues (#12749) (diff) | |
parent | texture_cache: do not track invalid addresses (diff) | |
download | yuzu-f1b15302498bd3f8d77af266e404456e59ea5a76.tar yuzu-f1b15302498bd3f8d77af266e404456e59ea5a76.tar.gz yuzu-f1b15302498bd3f8d77af266e404456e59ea5a76.tar.bz2 yuzu-f1b15302498bd3f8d77af266e404456e59ea5a76.tar.lz yuzu-f1b15302498bd3f8d77af266e404456e59ea5a76.tar.xz yuzu-f1b15302498bd3f8d77af266e404456e59ea5a76.tar.zst yuzu-f1b15302498bd3f8d77af266e404456e59ea5a76.zip |
Diffstat (limited to 'src/video_core/texture_cache')
-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 67487b463..feb1c575e 100644 --- a/src/video_core/texture_cache/texture_cache.h +++ b/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)); |