From 2117edd0f848cd7bc35bdbb1495ca10649715625 Mon Sep 17 00:00:00 2001 From: bunnei Date: Wed, 20 Mar 2019 23:12:28 -0400 Subject: memory_manager: Cleanup FindFreeRegion. --- src/video_core/memory_manager.cpp | 14 ++++---------- src/video_core/memory_manager.h | 4 ++-- 2 files changed, 6 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/video_core/memory_manager.cpp b/src/video_core/memory_manager.cpp index 6dc133c93..e76b59842 100644 --- a/src/video_core/memory_manager.cpp +++ b/src/video_core/memory_manager.cpp @@ -30,8 +30,7 @@ MemoryManager::MemoryManager() { GPUVAddr MemoryManager::AllocateSpace(u64 size, u64 align) { const u64 aligned_size{Common::AlignUp(size, page_size)}; - const GPUVAddr gpu_addr{ - FindFreeRegion(address_space_base, aligned_size, align, VirtualMemoryArea::Type::Unmapped)}; + const GPUVAddr gpu_addr{FindFreeRegion(address_space_base, aligned_size)}; AllocateMemory(gpu_addr, 0, aligned_size); @@ -48,8 +47,7 @@ GPUVAddr MemoryManager::AllocateSpace(GPUVAddr gpu_addr, u64 size, u64 align) { GPUVAddr MemoryManager::MapBufferEx(VAddr cpu_addr, u64 size) { const u64 aligned_size{Common::AlignUp(size, page_size)}; - const GPUVAddr gpu_addr{FindFreeRegion(address_space_base, aligned_size, page_size, - VirtualMemoryArea::Type::Unmapped)}; + const GPUVAddr gpu_addr{FindFreeRegion(address_space_base, aligned_size)}; MapBackingMemory(gpu_addr, Memory::GetPointer(cpu_addr), aligned_size, cpu_addr); @@ -79,14 +77,10 @@ GPUVAddr MemoryManager::UnmapBuffer(GPUVAddr gpu_addr, u64 size) { return gpu_addr; } -GPUVAddr MemoryManager::FindFreeRegion(GPUVAddr region_start, u64 size, u64 align, - VirtualMemoryArea::Type vma_type) { - - align = (align + page_mask) & ~page_mask; - +GPUVAddr MemoryManager::FindFreeRegion(GPUVAddr region_start, u64 size) { // 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 != vma_type) { + if (vma.second.type != VirtualMemoryArea::Type::Unmapped) { return false; } diff --git a/src/video_core/memory_manager.h b/src/video_core/memory_manager.h index 60ba6b858..34744bb27 100644 --- a/src/video_core/memory_manager.h +++ b/src/video_core/memory_manager.h @@ -126,8 +126,8 @@ private: /// Updates the pages corresponding to this VMA so they match the VMA's attributes. void UpdatePageTableForVMA(const VirtualMemoryArea& vma); - GPUVAddr FindFreeRegion(GPUVAddr region_start, u64 size, u64 align, - VirtualMemoryArea::Type vma_type); + /// Finds a free (unmapped region) of the specified size starting at the specified address. + GPUVAddr FindFreeRegion(GPUVAddr region_start, u64 size); private: static constexpr u64 page_bits{16}; -- cgit v1.2.3