diff options
author | liamwhite <liamwhite@users.noreply.github.com> | 2024-02-06 16:25:03 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-06 16:25:03 +0100 |
commit | c10e720ba9cb979577b3af53adb1347f13ec4ad5 (patch) | |
tree | 45094c231d85f9ab51ffe8299cf893affb4e7be8 /src/video_core/memory_manager.cpp | |
parent | Merge pull request #12928 from german77/motion-mp (diff) | |
parent | MemoryManager: Reduce the page table size based on last big page address. (diff) | |
download | yuzu-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.cpp | 17 |
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; |