diff options
author | bunnei <bunneidev@gmail.com> | 2020-08-25 04:56:11 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-25 04:56:11 +0200 |
commit | bb752df73676fa09e5d37df53ce5a464dd747111 (patch) | |
tree | 1561d50ec2d80c2106aee208c101e19fa35c7614 /src/video_core/memory_manager.cpp | |
parent | Merge pull request #4562 from lioncash/loop (diff) | |
parent | video_core: Initialize renderer with a GPU (diff) | |
download | yuzu-bb752df73676fa09e5d37df53ce5a464dd747111.tar yuzu-bb752df73676fa09e5d37df53ce5a464dd747111.tar.gz yuzu-bb752df73676fa09e5d37df53ce5a464dd747111.tar.bz2 yuzu-bb752df73676fa09e5d37df53ce5a464dd747111.tar.lz yuzu-bb752df73676fa09e5d37df53ce5a464dd747111.tar.xz yuzu-bb752df73676fa09e5d37df53ce5a464dd747111.tar.zst yuzu-bb752df73676fa09e5d37df53ce5a464dd747111.zip |
Diffstat (limited to 'src/video_core/memory_manager.cpp')
-rw-r--r-- | src/video_core/memory_manager.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/video_core/memory_manager.cpp b/src/video_core/memory_manager.cpp index 844164645..c217f5bb2 100644 --- a/src/video_core/memory_manager.cpp +++ b/src/video_core/memory_manager.cpp @@ -14,11 +14,15 @@ namespace Tegra { -MemoryManager::MemoryManager(Core::System& system, VideoCore::RasterizerInterface& rasterizer) - : system{system}, rasterizer{rasterizer}, page_table(page_table_size) {} +MemoryManager::MemoryManager(Core::System& system_) + : system{system_}, page_table(page_table_size) {} MemoryManager::~MemoryManager() = default; +void MemoryManager::BindRasterizer(VideoCore::RasterizerInterface& rasterizer_) { + rasterizer = &rasterizer_; +} + GPUVAddr MemoryManager::UpdateRange(GPUVAddr gpu_addr, PageEntry page_entry, std::size_t size) { u64 remaining_size{size}; for (u64 offset{}; offset < size; offset += page_size) { @@ -217,7 +221,7 @@ void MemoryManager::ReadBlock(GPUVAddr gpu_src_addr, void* dest_buffer, std::siz // Flush must happen on the rasterizer interface, such that memory is always synchronous // when it is read (even when in asynchronous GPU mode). Fixes Dead Cells title menu. - rasterizer.FlushRegion(src_addr, copy_amount); + rasterizer->FlushRegion(src_addr, copy_amount); system.Memory().ReadBlockUnsafe(src_addr, dest_buffer, copy_amount); } @@ -266,7 +270,7 @@ void MemoryManager::WriteBlock(GPUVAddr gpu_dest_addr, const void* src_buffer, s // Invalidate must happen on the rasterizer interface, such that memory is always // synchronous when it is written (even when in asynchronous GPU mode). - rasterizer.InvalidateRegion(dest_addr, copy_amount); + rasterizer->InvalidateRegion(dest_addr, copy_amount); system.Memory().WriteBlockUnsafe(dest_addr, src_buffer, copy_amount); } |