diff options
author | Fernando S <fsahmkow27@gmail.com> | 2023-12-24 16:23:14 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-24 16:23:14 +0100 |
commit | 05e3db3ac9edbff0e4885ef8b42d3a2427c9f027 (patch) | |
tree | 2f959b67638ab1134cfca19ac1f041552a68c335 /src/core/hle/kernel/k_process.h | |
parent | Merge pull request #12412 from ameerj/gl-query-prims (diff) | |
parent | kernel: fix resource limit imbalance (diff) | |
download | yuzu-05e3db3ac9edbff0e4885ef8b42d3a2427c9f027.tar yuzu-05e3db3ac9edbff0e4885ef8b42d3a2427c9f027.tar.gz yuzu-05e3db3ac9edbff0e4885ef8b42d3a2427c9f027.tar.bz2 yuzu-05e3db3ac9edbff0e4885ef8b42d3a2427c9f027.tar.lz yuzu-05e3db3ac9edbff0e4885ef8b42d3a2427c9f027.tar.xz yuzu-05e3db3ac9edbff0e4885ef8b42d3a2427c9f027.tar.zst yuzu-05e3db3ac9edbff0e4885ef8b42d3a2427c9f027.zip |
Diffstat (limited to 'src/core/hle/kernel/k_process.h')
-rw-r--r-- | src/core/hle/kernel/k_process.h | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/core/hle/kernel/k_process.h b/src/core/hle/kernel/k_process.h index 4b114e39b..b5c6867a1 100644 --- a/src/core/hle/kernel/k_process.h +++ b/src/core/hle/kernel/k_process.h @@ -7,6 +7,7 @@ #include "core/arm/arm_interface.h" #include "core/file_sys/program_metadata.h" +#include "core/gpu_dirty_memory_manager.h" #include "core/hle/kernel/code_set.h" #include "core/hle/kernel/k_address_arbiter.h" #include "core/hle/kernel/k_capabilities.h" @@ -17,6 +18,7 @@ #include "core/hle/kernel/k_system_resource.h" #include "core/hle/kernel/k_thread.h" #include "core/hle/kernel/k_thread_local_page.h" +#include "core/memory.h" namespace Kernel { @@ -126,6 +128,9 @@ private: #ifdef HAS_NCE std::unordered_map<u64, u64> m_post_handlers{}; #endif + std::array<Core::GPUDirtyMemoryManager, Core::Hardware::NUM_CPU_CORES> m_dirty_memory_managers; + std::unique_ptr<Core::ExclusiveMonitor> m_exclusive_monitor; + Core::Memory::Memory m_memory; private: Result StartTermination(); @@ -502,7 +507,15 @@ public: void InitializeInterfaces(); - Core::Memory::Memory& GetMemory() const; + Core::Memory::Memory& GetMemory() { + return m_memory; + } + + void GatherGPUDirtyMemory(std::function<void(VAddr, size_t)>& callback); + + Core::ExclusiveMonitor& GetExclusiveMonitor() const { + return *m_exclusive_monitor; + } public: // Overridden parent functions. @@ -539,7 +552,7 @@ private: Result InitializeHandleTable(s32 size) { // Try to initialize the handle table. - R_TRY(m_handle_table.Initialize(size)); + R_TRY(m_handle_table.Initialize(this, size)); // We succeeded, so note that we did. m_is_handle_table_initialized = true; |