diff options
| author | 2023-12-14 21:41:28 -0500 | |
|---|---|---|
| committer | 2023-12-14 22:10:21 -0500 | |
| commit | 2a3f84aaf28cb526121e016a9e6699fce7223407 (patch) | |
| tree | afb41b9da9839a24bfcf42bd0138c6f5c7a40ead | |
| parent | video_core: use interval map for page count tracking (diff) | |
| download | yuzu-2a3f84aaf28cb526121e016a9e6699fce7223407.tar.gz yuzu-2a3f84aaf28cb526121e016a9e6699fce7223407.tar.xz yuzu-2a3f84aaf28cb526121e016a9e6699fce7223407.zip | |
video_core: lock interval map update
Diffstat (limited to '')
| -rw-r--r-- | src/video_core/rasterizer_accelerated.cpp | 2 | ||||
| -rw-r--r-- | src/video_core/rasterizer_accelerated.h | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/src/video_core/rasterizer_accelerated.cpp b/src/video_core/rasterizer_accelerated.cpp index 3abfd5ff3..3c9477f6e 100644 --- a/src/video_core/rasterizer_accelerated.cpp +++ b/src/video_core/rasterizer_accelerated.cpp | |||
| @@ -29,6 +29,8 @@ RasterizerAccelerated::RasterizerAccelerated(Memory& cpu_memory_) : map{}, cpu_m | |||
| 29 | RasterizerAccelerated::~RasterizerAccelerated() = default; | 29 | RasterizerAccelerated::~RasterizerAccelerated() = default; |
| 30 | 30 | ||
| 31 | void RasterizerAccelerated::UpdatePagesCachedCount(VAddr addr, u64 size, bool cache) { | 31 | void RasterizerAccelerated::UpdatePagesCachedCount(VAddr addr, u64 size, bool cache) { |
| 32 | std::scoped_lock lk{map_lock}; | ||
| 33 | |||
| 32 | // Align sizes. | 34 | // Align sizes. |
| 33 | addr = Common::AlignDown(addr, YUZU_PAGESIZE); | 35 | addr = Common::AlignDown(addr, YUZU_PAGESIZE); |
| 34 | size = Common::AlignUp(size, YUZU_PAGESIZE); | 36 | size = Common::AlignUp(size, YUZU_PAGESIZE); |
diff --git a/src/video_core/rasterizer_accelerated.h b/src/video_core/rasterizer_accelerated.h index cd1c706de..f1968f186 100644 --- a/src/video_core/rasterizer_accelerated.h +++ b/src/video_core/rasterizer_accelerated.h | |||
| @@ -3,6 +3,7 @@ | |||
| 3 | 3 | ||
| 4 | #pragma once | 4 | #pragma once |
| 5 | 5 | ||
| 6 | #include <mutex> | ||
| 6 | #include <boost/icl/interval_map.hpp> | 7 | #include <boost/icl/interval_map.hpp> |
| 7 | 8 | ||
| 8 | #include "common/common_types.h" | 9 | #include "common/common_types.h" |
| @@ -30,6 +31,7 @@ private: | |||
| 30 | using IntervalType = IntervalMap::interval_type; | 31 | using IntervalType = IntervalMap::interval_type; |
| 31 | 32 | ||
| 32 | IntervalMap map; | 33 | IntervalMap map; |
| 34 | std::mutex map_lock; | ||
| 33 | Core::Memory::Memory& cpu_memory; | 35 | Core::Memory::Memory& cpu_memory; |
| 34 | }; | 36 | }; |
| 35 | 37 | ||