summaryrefslogtreecommitdiff
path: root/src/tests
diff options
context:
space:
mode:
authorGravatar liamwhite2023-12-16 11:47:21 -0500
committerGravatar GitHub2023-12-16 11:47:21 -0500
commit3bc7575c47f2460b249702c2844687b6c0106cc8 (patch)
tree540ca2ced701b86da44fbd674dedbdcf81b83117 /src/tests
parentMerge pull request #12358 from liamwhite/optimized-alloc (diff)
parentvideo_core: lock interval map update (diff)
downloadyuzu-3bc7575c47f2460b249702c2844687b6c0106cc8.tar.gz
yuzu-3bc7575c47f2460b249702c2844687b6c0106cc8.tar.xz
yuzu-3bc7575c47f2460b249702c2844687b6c0106cc8.zip
Merge pull request #12344 from liamwhite/its-free-real-estate
video_core: use interval map for page count tracking
Diffstat (limited to 'src/tests')
-rw-r--r--src/tests/video_core/memory_tracker.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/tests/video_core/memory_tracker.cpp b/src/tests/video_core/memory_tracker.cpp
index 618793668..2dbff21af 100644
--- a/src/tests/video_core/memory_tracker.cpp
+++ b/src/tests/video_core/memory_tracker.cpp
@@ -23,13 +23,13 @@ constexpr VAddr c = 16 * HIGH_PAGE_SIZE;
23 23
24class RasterizerInterface { 24class RasterizerInterface {
25public: 25public:
26 void UpdatePagesCachedCount(VAddr addr, u64 size, int delta) { 26 void UpdatePagesCachedCount(VAddr addr, u64 size, bool cache) {
27 const u64 page_start{addr >> Core::Memory::YUZU_PAGEBITS}; 27 const u64 page_start{addr >> Core::Memory::YUZU_PAGEBITS};
28 const u64 page_end{(addr + size + Core::Memory::YUZU_PAGESIZE - 1) >> 28 const u64 page_end{(addr + size + Core::Memory::YUZU_PAGESIZE - 1) >>
29 Core::Memory::YUZU_PAGEBITS}; 29 Core::Memory::YUZU_PAGEBITS};
30 for (u64 page = page_start; page < page_end; ++page) { 30 for (u64 page = page_start; page < page_end; ++page) {
31 int& value = page_table[page]; 31 int& value = page_table[page];
32 value += delta; 32 value += (cache ? 1 : -1);
33 if (value < 0) { 33 if (value < 0) {
34 throw std::logic_error{"negative page"}; 34 throw std::logic_error{"negative page"};
35 } 35 }
@@ -546,4 +546,4 @@ TEST_CASE("MemoryTracker: Cached write downloads") {
546 REQUIRE(!memory_track->IsRegionGpuModified(c + PAGE, PAGE)); 546 REQUIRE(!memory_track->IsRegionGpuModified(c + PAGE, PAGE));
547 memory_track->MarkRegionAsCpuModified(c, WORD); 547 memory_track->MarkRegionAsCpuModified(c, WORD);
548 REQUIRE(rasterizer.Count() == 0); 548 REQUIRE(rasterizer.Count() == 0);
549} \ No newline at end of file 549}