summaryrefslogtreecommitdiffstats
path: root/src/video_core
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2019-04-06 02:22:53 +0200
committerLioncash <mathew1800@gmail.com>2019-04-06 02:22:55 +0200
commit085b388a7aaa37663cec84d06a0c2cb674bee73a (patch)
treee32df29678742088d648acf71e3f314b9a47555b /src/video_core
parentvideo_core/memory_manager: Make GpuToCpuAddress() a const member function (diff)
downloadyuzu-085b388a7aaa37663cec84d06a0c2cb674bee73a.tar
yuzu-085b388a7aaa37663cec84d06a0c2cb674bee73a.tar.gz
yuzu-085b388a7aaa37663cec84d06a0c2cb674bee73a.tar.bz2
yuzu-085b388a7aaa37663cec84d06a0c2cb674bee73a.tar.lz
yuzu-085b388a7aaa37663cec84d06a0c2cb674bee73a.tar.xz
yuzu-085b388a7aaa37663cec84d06a0c2cb674bee73a.tar.zst
yuzu-085b388a7aaa37663cec84d06a0c2cb674bee73a.zip
Diffstat (limited to 'src/video_core')
-rw-r--r--src/video_core/memory_manager.cpp19
-rw-r--r--src/video_core/memory_manager.h2
2 files changed, 11 insertions, 10 deletions
diff --git a/src/video_core/memory_manager.cpp b/src/video_core/memory_manager.cpp
index 124a3c6d2..11b1d022a 100644
--- a/src/video_core/memory_manager.cpp
+++ b/src/video_core/memory_manager.cpp
@@ -77,16 +77,17 @@ GPUVAddr MemoryManager::UnmapBuffer(GPUVAddr gpu_addr, u64 size) {
return gpu_addr;
}
-GPUVAddr MemoryManager::FindFreeRegion(GPUVAddr region_start, u64 size) {
+GPUVAddr MemoryManager::FindFreeRegion(GPUVAddr region_start, u64 size) const {
// Find the first Free VMA.
- const VMAHandle vma_handle{std::find_if(vma_map.begin(), vma_map.end(), [&](const auto& vma) {
- if (vma.second.type != VirtualMemoryArea::Type::Unmapped) {
- return false;
- }
-
- const VAddr vma_end{vma.second.base + vma.second.size};
- return vma_end > region_start && vma_end >= region_start + size;
- })};
+ const VMAHandle vma_handle{
+ std::find_if(vma_map.begin(), vma_map.end(), [region_start, size](const auto& vma) {
+ if (vma.second.type != VirtualMemoryArea::Type::Unmapped) {
+ return false;
+ }
+
+ const VAddr vma_end{vma.second.base + vma.second.size};
+ return vma_end > region_start && vma_end >= region_start + size;
+ })};
if (vma_handle == vma_map.end()) {
return {};
diff --git a/src/video_core/memory_manager.h b/src/video_core/memory_manager.h
index c3b4d7ae7..d75c1c5c0 100644
--- a/src/video_core/memory_manager.h
+++ b/src/video_core/memory_manager.h
@@ -127,7 +127,7 @@ private:
void UpdatePageTableForVMA(const VirtualMemoryArea& vma);
/// Finds a free (unmapped region) of the specified size starting at the specified address.
- GPUVAddr FindFreeRegion(GPUVAddr region_start, u64 size);
+ GPUVAddr FindFreeRegion(GPUVAddr region_start, u64 size) const;
private:
static constexpr u64 page_bits{16};