summaryrefslogtreecommitdiffstats
path: root/src/video_core/memory_manager.cpp
diff options
context:
space:
mode:
authorliamwhite <liamwhite@users.noreply.github.com>2024-02-06 16:25:03 +0100
committerGitHub <noreply@github.com>2024-02-06 16:25:03 +0100
commitc10e720ba9cb979577b3af53adb1347f13ec4ad5 (patch)
tree45094c231d85f9ab51ffe8299cf893affb4e7be8 /src/video_core/memory_manager.cpp
parentMerge pull request #12928 from german77/motion-mp (diff)
parentMemoryManager: Reduce the page table size based on last big page address. (diff)
downloadyuzu-c10e720ba9cb979577b3af53adb1347f13ec4ad5.tar
yuzu-c10e720ba9cb979577b3af53adb1347f13ec4ad5.tar.gz
yuzu-c10e720ba9cb979577b3af53adb1347f13ec4ad5.tar.bz2
yuzu-c10e720ba9cb979577b3af53adb1347f13ec4ad5.tar.lz
yuzu-c10e720ba9cb979577b3af53adb1347f13ec4ad5.tar.xz
yuzu-c10e720ba9cb979577b3af53adb1347f13ec4ad5.tar.zst
yuzu-c10e720ba9cb979577b3af53adb1347f13ec4ad5.zip
Diffstat (limited to 'src/video_core/memory_manager.cpp')
-rw-r--r--src/video_core/memory_manager.cpp17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/video_core/memory_manager.cpp b/src/video_core/memory_manager.cpp
index a52f8e486..ffafc48ef 100644
--- a/src/video_core/memory_manager.cpp
+++ b/src/video_core/memory_manager.cpp
@@ -22,11 +22,12 @@ using Tegra::Memory::GuestMemoryFlags;
std::atomic<size_t> MemoryManager::unique_identifier_generator{};
MemoryManager::MemoryManager(Core::System& system_, MaxwellDeviceMemoryManager& memory_,
- u64 address_space_bits_, u64 big_page_bits_, u64 page_bits_)
+ u64 address_space_bits_, GPUVAddr split_address_, u64 big_page_bits_,
+ u64 page_bits_)
: system{system_}, memory{memory_}, address_space_bits{address_space_bits_},
- page_bits{page_bits_}, big_page_bits{big_page_bits_}, entries{}, big_entries{},
- page_table{address_space_bits, address_space_bits + page_bits - 38,
- page_bits != big_page_bits ? page_bits : 0},
+ split_address{split_address_}, page_bits{page_bits_}, big_page_bits{big_page_bits_},
+ entries{}, big_entries{}, page_table{address_space_bits, address_space_bits + page_bits - 38,
+ page_bits != big_page_bits ? page_bits : 0},
kind_map{PTEKind::INVALID}, unique_identifier{unique_identifier_generator.fetch_add(
1, std::memory_order_acq_rel)},
accumulator{std::make_unique<VideoCommon::InvalidationAccumulator>()} {
@@ -48,10 +49,10 @@ MemoryManager::MemoryManager(Core::System& system_, MaxwellDeviceMemoryManager&
entries.resize(page_table_size / 32, 0);
}
-MemoryManager::MemoryManager(Core::System& system_, u64 address_space_bits_, u64 big_page_bits_,
- u64 page_bits_)
- : MemoryManager(system_, system_.Host1x().MemoryManager(), address_space_bits_, big_page_bits_,
- page_bits_) {}
+MemoryManager::MemoryManager(Core::System& system_, u64 address_space_bits_,
+ GPUVAddr split_address_, u64 big_page_bits_, u64 page_bits_)
+ : MemoryManager(system_, system_.Host1x().MemoryManager(), address_space_bits_, split_address_,
+ big_page_bits_, page_bits_) {}
MemoryManager::~MemoryManager() = default;