diff options
author | liamwhite <liamwhite@users.noreply.github.com> | 2023-12-16 11:47:21 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-16 11:47:21 -0500 |
commit | 3bc7575c47f2460b249702c2844687b6c0106cc8 (patch) | |
tree | 540ca2ced701b86da44fbd674dedbdcf81b83117 /src/tests | |
parent | fde8dc1652aa886210a9fa45bf2b859e14c11b37 (diff) | |
parent | 2a3f84aaf28cb526121e016a9e6699fce7223407 (diff) |
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.cpp | 6 |
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; class RasterizerInterface { public: - void UpdatePagesCachedCount(VAddr addr, u64 size, int delta) { + void UpdatePagesCachedCount(VAddr addr, u64 size, bool cache) { const u64 page_start{addr >> Core::Memory::YUZU_PAGEBITS}; const u64 page_end{(addr + size + Core::Memory::YUZU_PAGESIZE - 1) >> Core::Memory::YUZU_PAGEBITS}; for (u64 page = page_start; page < page_end; ++page) { int& value = page_table[page]; - value += delta; + value += (cache ? 1 : -1); if (value < 0) { throw std::logic_error{"negative page"}; } @@ -546,4 +546,4 @@ TEST_CASE("MemoryTracker: Cached write downloads") { REQUIRE(!memory_track->IsRegionGpuModified(c + PAGE, PAGE)); memory_track->MarkRegionAsCpuModified(c, WORD); REQUIRE(rasterizer.Count() == 0); -}
\ No newline at end of file +} |