diff options
| author | 2024-02-27 09:42:46 -0500 | |
|---|---|---|
| committer | 2024-02-27 09:42:46 -0500 | |
| commit | f1b15302498bd3f8d77af266e404456e59ea5a76 (patch) | |
| tree | 608a399704cff022cc043ff324622d490f9c2be0 | |
| parent | general: workarounds for SMMU syncing issues (#12749) (diff) | |
| parent | texture_cache: do not track invalid addresses (diff) | |
| download | yuzu-f1b15302498bd3f8d77af266e404456e59ea5a76.tar.gz yuzu-f1b15302498bd3f8d77af266e404456e59ea5a76.tar.xz yuzu-f1b15302498bd3f8d77af266e404456e59ea5a76.zip | |
Merge pull request #13171 from liamwhite/fake-address
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 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) { | |||
| 2114 | ASSERT(False(image.flags & ImageFlagBits::Tracked)); | 2114 | ASSERT(False(image.flags & ImageFlagBits::Tracked)); |
| 2115 | image.flags |= ImageFlagBits::Tracked; | 2115 | image.flags |= ImageFlagBits::Tracked; |
| 2116 | if (False(image.flags & ImageFlagBits::Sparse)) { | 2116 | if (False(image.flags & ImageFlagBits::Sparse)) { |
| 2117 | device_memory.UpdatePagesCachedCount(image.cpu_addr, image.guest_size_bytes, 1); | 2117 | if (image.cpu_addr < ~(1ULL << 40)) { |
| 2118 | device_memory.UpdatePagesCachedCount(image.cpu_addr, image.guest_size_bytes, 1); | ||
| 2119 | } | ||
| 2118 | return; | 2120 | return; |
| 2119 | } | 2121 | } |
| 2120 | if (True(image.flags & ImageFlagBits::Registered)) { | 2122 | if (True(image.flags & ImageFlagBits::Registered)) { |
| @@ -2140,7 +2142,9 @@ void TextureCache<P>::UntrackImage(ImageBase& image, ImageId image_id) { | |||
| 2140 | ASSERT(True(image.flags & ImageFlagBits::Tracked)); | 2142 | ASSERT(True(image.flags & ImageFlagBits::Tracked)); |
| 2141 | image.flags &= ~ImageFlagBits::Tracked; | 2143 | image.flags &= ~ImageFlagBits::Tracked; |
| 2142 | if (False(image.flags & ImageFlagBits::Sparse)) { | 2144 | if (False(image.flags & ImageFlagBits::Sparse)) { |
| 2143 | device_memory.UpdatePagesCachedCount(image.cpu_addr, image.guest_size_bytes, -1); | 2145 | if (image.cpu_addr < ~(1ULL << 40)) { |
| 2146 | device_memory.UpdatePagesCachedCount(image.cpu_addr, image.guest_size_bytes, -1); | ||
| 2147 | } | ||
| 2144 | return; | 2148 | return; |
| 2145 | } | 2149 | } |
| 2146 | ASSERT(True(image.flags & ImageFlagBits::Registered)); | 2150 | ASSERT(True(image.flags & ImageFlagBits::Registered)); |