diff options
author | bunnei <bunneidev@gmail.com> | 2018-11-23 18:58:55 +0100 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2018-11-23 18:58:55 +0100 |
commit | 0b1842294f5f43ea2ee42bb8afd26e57c9250f4b (patch) | |
tree | 97507dc052dbec1891184e512a666a791c89b633 /src/video_core/memory_manager.cpp | |
parent | Merge pull request #1770 from DarkLordZach/applet-stub (diff) | |
download | yuzu-0b1842294f5f43ea2ee42bb8afd26e57c9250f4b.tar yuzu-0b1842294f5f43ea2ee42bb8afd26e57c9250f4b.tar.gz yuzu-0b1842294f5f43ea2ee42bb8afd26e57c9250f4b.tar.bz2 yuzu-0b1842294f5f43ea2ee42bb8afd26e57c9250f4b.tar.lz yuzu-0b1842294f5f43ea2ee42bb8afd26e57c9250f4b.tar.xz yuzu-0b1842294f5f43ea2ee42bb8afd26e57c9250f4b.tar.zst yuzu-0b1842294f5f43ea2ee42bb8afd26e57c9250f4b.zip |
Diffstat (limited to 'src/video_core/memory_manager.cpp')
-rw-r--r-- | src/video_core/memory_manager.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/video_core/memory_manager.cpp b/src/video_core/memory_manager.cpp index 77a20bb84..47247f097 100644 --- a/src/video_core/memory_manager.cpp +++ b/src/video_core/memory_manager.cpp @@ -9,6 +9,13 @@ namespace Tegra { +MemoryManager::MemoryManager() { + // Mark the first page as reserved, so that 0 is not a valid GPUVAddr. Otherwise, games might + // try to use 0 as a valid address, which is also used to mean nullptr. This fixes a bug with + // Undertale using 0 for a render target. + PageSlot(0) = static_cast<u64>(PageStatus::Reserved); +} + GPUVAddr MemoryManager::AllocateSpace(u64 size, u64 align) { const std::optional<GPUVAddr> gpu_addr{FindFreeBlock(0, size, align, PageStatus::Unmapped)}; |