summaryrefslogtreecommitdiff
path: root/src/video_core/texture_cache
diff options
context:
space:
mode:
authorGravatar Liam2023-12-12 17:15:52 -0500
committerGravatar Liam2023-12-14 21:54:36 -0500
commit030e6b3980aa5ce6069041c339d49d21d68ca73b (patch)
tree428a3d3a1e322a4cfad696bdcd756dd7332acefa /src/video_core/texture_cache
parentMerge pull request #12354 from liamwhite/mackage-panager (diff)
downloadyuzu-030e6b3980aa5ce6069041c339d49d21d68ca73b.tar.gz
yuzu-030e6b3980aa5ce6069041c339d49d21d68ca73b.tar.xz
yuzu-030e6b3980aa5ce6069041c339d49d21d68ca73b.zip
video_core: use interval map for page count tracking
Diffstat (limited to 'src/video_core/texture_cache')
-rw-r--r--src/video_core/texture_cache/texture_cache.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h
index 0d5a1709f..d7941f6a4 100644
--- a/src/video_core/texture_cache/texture_cache.h
+++ b/src/video_core/texture_cache/texture_cache.h
@@ -2080,7 +2080,7 @@ void TextureCache<P>::TrackImage(ImageBase& image, ImageId image_id) {
2080 ASSERT(False(image.flags & ImageFlagBits::Tracked)); 2080 ASSERT(False(image.flags & ImageFlagBits::Tracked));
2081 image.flags |= ImageFlagBits::Tracked; 2081 image.flags |= ImageFlagBits::Tracked;
2082 if (False(image.flags & ImageFlagBits::Sparse)) { 2082 if (False(image.flags & ImageFlagBits::Sparse)) {
2083 rasterizer.UpdatePagesCachedCount(image.cpu_addr, image.guest_size_bytes, 1); 2083 rasterizer.UpdatePagesCachedCount(image.cpu_addr, image.guest_size_bytes, true);
2084 return; 2084 return;
2085 } 2085 }
2086 if (True(image.flags & ImageFlagBits::Registered)) { 2086 if (True(image.flags & ImageFlagBits::Registered)) {
@@ -2091,13 +2091,13 @@ void TextureCache<P>::TrackImage(ImageBase& image, ImageId image_id) {
2091 const auto& map = slot_map_views[map_view_id]; 2091 const auto& map = slot_map_views[map_view_id];
2092 const VAddr cpu_addr = map.cpu_addr; 2092 const VAddr cpu_addr = map.cpu_addr;
2093 const std::size_t size = map.size; 2093 const std::size_t size = map.size;
2094 rasterizer.UpdatePagesCachedCount(cpu_addr, size, 1); 2094 rasterizer.UpdatePagesCachedCount(cpu_addr, size, true);
2095 } 2095 }
2096 return; 2096 return;
2097 } 2097 }
2098 ForEachSparseSegment(image, 2098 ForEachSparseSegment(image,
2099 [this]([[maybe_unused]] GPUVAddr gpu_addr, VAddr cpu_addr, size_t size) { 2099 [this]([[maybe_unused]] GPUVAddr gpu_addr, VAddr cpu_addr, size_t size) {
2100 rasterizer.UpdatePagesCachedCount(cpu_addr, size, 1); 2100 rasterizer.UpdatePagesCachedCount(cpu_addr, size, true);
2101 }); 2101 });
2102} 2102}
2103 2103
@@ -2106,7 +2106,7 @@ void TextureCache<P>::UntrackImage(ImageBase& image, ImageId image_id) {
2106 ASSERT(True(image.flags & ImageFlagBits::Tracked)); 2106 ASSERT(True(image.flags & ImageFlagBits::Tracked));
2107 image.flags &= ~ImageFlagBits::Tracked; 2107 image.flags &= ~ImageFlagBits::Tracked;
2108 if (False(image.flags & ImageFlagBits::Sparse)) { 2108 if (False(image.flags & ImageFlagBits::Sparse)) {
2109 rasterizer.UpdatePagesCachedCount(image.cpu_addr, image.guest_size_bytes, -1); 2109 rasterizer.UpdatePagesCachedCount(image.cpu_addr, image.guest_size_bytes, false);
2110 return; 2110 return;
2111 } 2111 }
2112 ASSERT(True(image.flags & ImageFlagBits::Registered)); 2112 ASSERT(True(image.flags & ImageFlagBits::Registered));
@@ -2117,7 +2117,7 @@ void TextureCache<P>::UntrackImage(ImageBase& image, ImageId image_id) {
2117 const auto& map = slot_map_views[map_view_id]; 2117 const auto& map = slot_map_views[map_view_id];
2118 const VAddr cpu_addr = map.cpu_addr; 2118 const VAddr cpu_addr = map.cpu_addr;
2119 const std::size_t size = map.size; 2119 const std::size_t size = map.size;
2120 rasterizer.UpdatePagesCachedCount(cpu_addr, size, -1); 2120 rasterizer.UpdatePagesCachedCount(cpu_addr, size, false);
2121 } 2121 }
2122} 2122}
2123 2123