memory_manager: Improved implementation of read/write/copy block.

- Fixes graphical issues with Chocobo's Mystery Dungeon EVERY BUDDY!
- Fixes a crash with Mario Tennis Aces
This commit is contained in:
bunnei
2019-03-28 21:58:28 -04:00
parent 89b8801a97
commit 20be92d5e6
3 changed files with 84 additions and 12 deletions

View File

@ -10,6 +10,10 @@
#include "common/common_types.h"
#include "common/page_table.h"
namespace VideoCore {
class RasterizerInterface;
}
namespace Tegra {
/**
@ -43,7 +47,7 @@ struct VirtualMemoryArea {
class MemoryManager final {
public:
MemoryManager();
MemoryManager(VideoCore::RasterizerInterface& rasterizer);
GPUVAddr AllocateSpace(u64 size, u64 align);
GPUVAddr AllocateSpace(GPUVAddr addr, u64 size, u64 align);
@ -144,6 +148,7 @@ private:
Common::PageTable page_table{page_bits};
VMAMap vma_map;
VideoCore::RasterizerInterface& rasterizer;
};
} // namespace Tegra