diff options
author | bunnei <bunneidev@gmail.com> | 2020-02-02 03:01:00 +0100 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2020-02-08 04:59:35 +0100 |
commit | 7cacb08cdf8b813d8d564bff747ca2f741bb9f29 (patch) | |
tree | b3171f77d8e6d2c4398858f4f79d565a5d6780ae /src/video_core/memory_manager.cpp | |
parent | Merge pull request #3378 from ReinUsesLisp/uscaled (diff) | |
download | yuzu-7cacb08cdf8b813d8d564bff747ca2f741bb9f29.tar yuzu-7cacb08cdf8b813d8d564bff747ca2f741bb9f29.tar.gz yuzu-7cacb08cdf8b813d8d564bff747ca2f741bb9f29.tar.bz2 yuzu-7cacb08cdf8b813d8d564bff747ca2f741bb9f29.tar.lz yuzu-7cacb08cdf8b813d8d564bff747ca2f741bb9f29.tar.xz yuzu-7cacb08cdf8b813d8d564bff747ca2f741bb9f29.tar.zst yuzu-7cacb08cdf8b813d8d564bff747ca2f741bb9f29.zip |
Diffstat (limited to '')
-rw-r--r-- | src/video_core/memory_manager.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/video_core/memory_manager.cpp b/src/video_core/memory_manager.cpp index 11848fbce..f1d50be3e 100644 --- a/src/video_core/memory_manager.cpp +++ b/src/video_core/memory_manager.cpp @@ -9,13 +9,12 @@ #include "core/hle/kernel/process.h" #include "core/hle/kernel/vm_manager.h" #include "core/memory.h" +#include "video_core/gpu.h" #include "video_core/memory_manager.h" -#include "video_core/rasterizer_interface.h" namespace Tegra { -MemoryManager::MemoryManager(Core::System& system, VideoCore::RasterizerInterface& rasterizer) - : rasterizer{rasterizer}, system{system} { +MemoryManager::MemoryManager(Core::System& system) : system{system} { std::fill(page_table.pointers.begin(), page_table.pointers.end(), nullptr); std::fill(page_table.attributes.begin(), page_table.attributes.end(), Common::PageType::Unmapped); @@ -84,7 +83,8 @@ GPUVAddr MemoryManager::UnmapBuffer(GPUVAddr gpu_addr, u64 size) { const auto cpu_addr = GpuToCpuAddress(gpu_addr); ASSERT(cpu_addr); - rasterizer.FlushAndInvalidateRegion(cache_addr, aligned_size); + system.GPU().FlushAndInvalidateRegion(cache_addr, aligned_size); + UnmapRange(gpu_addr, aligned_size); ASSERT(system.CurrentProcess() ->VMManager() @@ -242,7 +242,7 @@ void MemoryManager::ReadBlock(GPUVAddr src_addr, void* dest_buffer, const std::s switch (page_table.attributes[page_index]) { case Common::PageType::Memory: { const u8* src_ptr{page_table.pointers[page_index] + page_offset}; - rasterizer.FlushRegion(ToCacheAddr(src_ptr), copy_amount); + system.GPU().FlushRegion(ToCacheAddr(src_ptr), copy_amount); std::memcpy(dest_buffer, src_ptr, copy_amount); break; } @@ -292,7 +292,7 @@ void MemoryManager::WriteBlock(GPUVAddr dest_addr, const void* src_buffer, const switch (page_table.attributes[page_index]) { case Common::PageType::Memory: { u8* dest_ptr{page_table.pointers[page_index] + page_offset}; - rasterizer.InvalidateRegion(ToCacheAddr(dest_ptr), copy_amount); + system.GPU().InvalidateRegion(ToCacheAddr(dest_ptr), copy_amount); std::memcpy(dest_ptr, src_buffer, copy_amount); break; } @@ -340,7 +340,7 @@ void MemoryManager::CopyBlock(GPUVAddr dest_addr, GPUVAddr src_addr, const std:: switch (page_table.attributes[page_index]) { case Common::PageType::Memory: { const u8* src_ptr{page_table.pointers[page_index] + page_offset}; - rasterizer.FlushRegion(ToCacheAddr(src_ptr), copy_amount); + system.GPU().FlushRegion(ToCacheAddr(src_ptr), copy_amount); WriteBlock(dest_addr, src_ptr, copy_amount); break; } |