diff options
author | Fernando Sahmkow <fsahmkow27@gmail.com> | 2024-01-05 03:47:48 +0100 |
---|---|---|
committer | Liam <byteslice@airmail.cc> | 2024-01-19 03:12:30 +0100 |
commit | a874ab0133459b713205a87738234fae03dc715b (patch) | |
tree | c206f6d744e7c61a9dc044013469b6e58100b2a4 | |
parent | Core: Clang format and other small issues. (diff) | |
download | yuzu-a874ab0133459b713205a87738234fae03dc715b.tar yuzu-a874ab0133459b713205a87738234fae03dc715b.tar.gz yuzu-a874ab0133459b713205a87738234fae03dc715b.tar.bz2 yuzu-a874ab0133459b713205a87738234fae03dc715b.tar.lz yuzu-a874ab0133459b713205a87738234fae03dc715b.tar.xz yuzu-a874ab0133459b713205a87738234fae03dc715b.tar.zst yuzu-a874ab0133459b713205a87738234fae03dc715b.zip |
-rw-r--r-- | src/core/device_memory_manager.inc | 10 | ||||
-rw-r--r-- | src/video_core/memory_manager.cpp | 3 |
2 files changed, 8 insertions, 5 deletions
diff --git a/src/core/device_memory_manager.inc b/src/core/device_memory_manager.inc index a0eb4214e..5241293b6 100644 --- a/src/core/device_memory_manager.inc +++ b/src/core/device_memory_manager.inc @@ -340,8 +340,8 @@ T* DeviceMemoryManager<Traits>::GetPointer(DAddr address) { if (phys_addr == 0) [[unlikely]] { return nullptr; } - return GetPointerFromRaw<T>( - static_cast<PAddr>(((phys_addr - 1) << Memory::YUZU_PAGEBITS) + offset)); + return GetPointerFromRaw<T>((static_cast<PAddr>(phys_addr - 1) << Memory::YUZU_PAGEBITS) + + offset); } template <typename Traits> @@ -353,8 +353,8 @@ const T* DeviceMemoryManager<Traits>::GetPointer(DAddr address) const { if (phys_addr == 0) [[unlikely]] { return nullptr; } - return GetPointerFromRaw<T>( - static_cast<PAddr>(((phys_addr - 1) << Memory::YUZU_PAGEBITS) + offset)); + return GetPointerFromRaw<T>((static_cast<PAddr>(phys_addr - 1) << Memory::YUZU_PAGEBITS) + + offset); } template <typename Traits> @@ -405,7 +405,7 @@ void DeviceMemoryManager<Traits>::WalkBlock(DAddr addr, std::size_t size, auto o continue; } auto* mem_ptr = GetPointerFromRaw<u8>( - static_cast<PAddr>(((phys_addr - 1) << Memory::YUZU_PAGEBITS) + page_offset)); + (static_cast<PAddr>(phys_addr - 1) << Memory::YUZU_PAGEBITS) + page_offset); on_memory(copy_amount, mem_ptr); } } diff --git a/src/video_core/memory_manager.cpp b/src/video_core/memory_manager.cpp index ac1417fbc..b18b44e42 100644 --- a/src/video_core/memory_manager.cpp +++ b/src/video_core/memory_manager.cpp @@ -762,6 +762,9 @@ void MemoryManager::FlushCaching() { } const u8* MemoryManager::GetSpan(const GPUVAddr src_addr, const std::size_t size) const { + if (!IsContinuousRange(src_addr, size)) { + return nullptr; + } auto dev_addr = GpuToCpuAddress(src_addr); if (dev_addr) { return memory.GetSpan(*dev_addr, size); |