diff options
author | bunnei <bunneidev@gmail.com> | 2018-04-21 20:40:51 +0200 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2018-04-24 23:49:20 +0200 |
commit | 10c6d891190e407cf4fbcf6eb8ce2506ddf388ec (patch) | |
tree | 3ba8d73cf1906252012a4810be6f5b0b5bc9ca80 /src/video_core/memory_manager.h | |
parent | memory_manager: Make GpuToCpuAddress return an optional. (diff) | |
download | yuzu-10c6d891190e407cf4fbcf6eb8ce2506ddf388ec.tar yuzu-10c6d891190e407cf4fbcf6eb8ce2506ddf388ec.tar.gz yuzu-10c6d891190e407cf4fbcf6eb8ce2506ddf388ec.tar.bz2 yuzu-10c6d891190e407cf4fbcf6eb8ce2506ddf388ec.tar.lz yuzu-10c6d891190e407cf4fbcf6eb8ce2506ddf388ec.tar.xz yuzu-10c6d891190e407cf4fbcf6eb8ce2506ddf388ec.tar.zst yuzu-10c6d891190e407cf4fbcf6eb8ce2506ddf388ec.zip |
Diffstat (limited to 'src/video_core/memory_manager.h')
-rw-r--r-- | src/video_core/memory_manager.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/video_core/memory_manager.h b/src/video_core/memory_manager.h index 246c8fb7e..7d745101f 100644 --- a/src/video_core/memory_manager.h +++ b/src/video_core/memory_manager.h @@ -6,6 +6,7 @@ #include <array> #include <memory> +#include <vector> #include <boost/optional.hpp> @@ -26,6 +27,7 @@ public: GPUVAddr MapBufferEx(VAddr cpu_addr, u64 size); GPUVAddr MapBufferEx(VAddr cpu_addr, GPUVAddr gpu_addr, u64 size); boost::optional<VAddr> GpuToCpuAddress(GPUVAddr gpu_addr); + std::vector<GPUVAddr> CpuToGpuAddress(VAddr cpu_addr) const; static constexpr u64 PAGE_BITS = 16; static constexpr u64 PAGE_SIZE = 1 << PAGE_BITS; @@ -51,6 +53,14 @@ private: using PageBlock = std::array<VAddr, PAGE_BLOCK_SIZE>; std::array<std::unique_ptr<PageBlock>, PAGE_TABLE_SIZE> page_table{}; + + struct MappedRegion { + VAddr cpu_addr; + GPUVAddr gpu_addr; + u64 size; + }; + + std::vector<MappedRegion> mapped_regions; }; } // namespace Tegra |