summaryrefslogtreecommitdiffstats
path: root/src/video_core/memory_manager.h
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2022-02-06 18:51:07 +0100
committerFernando Sahmkow <fsahmkow27@gmail.com>2022-10-06 21:00:52 +0200
commit359f22b808f54de9f19e40a8f93604ee7e4bac80 (patch)
tree2a1ec8fa21877820bc698df01a22b765e27b7b7a /src/video_core/memory_manager.h
parentOpenGL: Fix TickWork (diff)
downloadyuzu-359f22b808f54de9f19e40a8f93604ee7e4bac80.tar
yuzu-359f22b808f54de9f19e40a8f93604ee7e4bac80.tar.gz
yuzu-359f22b808f54de9f19e40a8f93604ee7e4bac80.tar.bz2
yuzu-359f22b808f54de9f19e40a8f93604ee7e4bac80.tar.lz
yuzu-359f22b808f54de9f19e40a8f93604ee7e4bac80.tar.xz
yuzu-359f22b808f54de9f19e40a8f93604ee7e4bac80.tar.zst
yuzu-359f22b808f54de9f19e40a8f93604ee7e4bac80.zip
Diffstat (limited to 'src/video_core/memory_manager.h')
-rw-r--r--src/video_core/memory_manager.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/video_core/memory_manager.h b/src/video_core/memory_manager.h
index 9c388a06e..8f8877a92 100644
--- a/src/video_core/memory_manager.h
+++ b/src/video_core/memory_manager.h
@@ -105,9 +105,6 @@ public:
void FlushRegion(GPUVAddr gpu_addr, size_t size) const;
private:
- [[nodiscard]] std::optional<GPUVAddr> FindFreeRange(std::size_t size, std::size_t align,
- bool start_32bit_address = false) const;
-
template <bool is_big_pages, typename FuncMapped, typename FuncReserved, typename FuncUnmapped>
inline void MemoryOperation(GPUVAddr gpu_src_addr, std::size_t size, FuncMapped&& func_mapped,
FuncReserved&& func_reserved, FuncUnmapped&& func_unmapped) const;
@@ -127,6 +124,9 @@ private:
}
}
+ inline bool IsBigPageContinous(size_t big_page_index) const;
+ inline void SetBigPageContinous(size_t big_page_index, bool value);
+
Core::System& system;
Core::Memory::Memory& memory;
Core::DeviceMemory& device_memory;
@@ -169,7 +169,10 @@ private:
Common::MultiLevelPageTable<u32> page_table;
Common::VirtualBuffer<u32> big_page_table_cpu;
- Common::VirtualBuffer<u32> big_page_table_physical;
+
+ std::vector<u64> big_page_continous;
+
+ constexpr static size_t continous_bits = 64;
const size_t unique_identifier;