summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Liam2024-02-26 09:51:19 -0500
committerGravatar Liam2024-02-26 10:26:27 -0500
commitfd9ed54f279e40a415075c4ae748bef7c5ceb1ff (patch)
treee5abe6770723f20c2c4f66f4394e2cf2cdc828dc
parentMerge pull request #13164 from merryhime/reset-submodules (diff)
downloadyuzu-fd9ed54f279e40a415075c4ae748bef7c5ceb1ff.tar.gz
yuzu-fd9ed54f279e40a415075c4ae748bef7c5ceb1ff.tar.xz
yuzu-fd9ed54f279e40a415075c4ae748bef7c5ceb1ff.zip
texture_cache: do not track invalid addresses
-rw-r--r--src/video_core/texture_cache/texture_cache.h8
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) {
2098 ASSERT(False(image.flags & ImageFlagBits::Tracked)); 2098 ASSERT(False(image.flags & ImageFlagBits::Tracked));
2099 image.flags |= ImageFlagBits::Tracked; 2099 image.flags |= ImageFlagBits::Tracked;
2100 if (False(image.flags & ImageFlagBits::Sparse)) { 2100 if (False(image.flags & ImageFlagBits::Sparse)) {
2101 device_memory.UpdatePagesCachedCount(image.cpu_addr, image.guest_size_bytes, 1); 2101 if (image.cpu_addr < ~(1ULL << 40)) {
2102 device_memory.UpdatePagesCachedCount(image.cpu_addr, image.guest_size_bytes, 1);
2103 }
2102 return; 2104 return;
2103 } 2105 }
2104 if (True(image.flags & ImageFlagBits::Registered)) { 2106 if (True(image.flags & ImageFlagBits::Registered)) {
@@ -2124,7 +2126,9 @@ void TextureCache<P>::UntrackImage(ImageBase& image, ImageId image_id) {
2124 ASSERT(True(image.flags & ImageFlagBits::Tracked)); 2126 ASSERT(True(image.flags & ImageFlagBits::Tracked));
2125 image.flags &= ~ImageFlagBits::Tracked; 2127 image.flags &= ~ImageFlagBits::Tracked;
2126 if (False(image.flags & ImageFlagBits::Sparse)) { 2128 if (False(image.flags & ImageFlagBits::Sparse)) {
2127 device_memory.UpdatePagesCachedCount(image.cpu_addr, image.guest_size_bytes, -1); 2129 if (image.cpu_addr < ~(1ULL << 40)) {
2130 device_memory.UpdatePagesCachedCount(image.cpu_addr, image.guest_size_bytes, -1);
2131 }
2128 return; 2132 return;
2129 } 2133 }
2130 ASSERT(True(image.flags & ImageFlagBits::Registered)); 2134 ASSERT(True(image.flags & ImageFlagBits::Registered));