Просмотр исходного кода

video_core: lock interval map update

Liam 2 лет назад
Родитель
Сommit
2a3f84aaf2

+ 2 - 0
src/video_core/rasterizer_accelerated.cpp

@@ -29,6 +29,8 @@ RasterizerAccelerated::RasterizerAccelerated(Memory& cpu_memory_) : map{}, cpu_m
 RasterizerAccelerated::~RasterizerAccelerated() = default;
 
 void RasterizerAccelerated::UpdatePagesCachedCount(VAddr addr, u64 size, bool cache) {
+    std::scoped_lock lk{map_lock};
+
     // Align sizes.
     addr = Common::AlignDown(addr, YUZU_PAGESIZE);
     size = Common::AlignUp(size, YUZU_PAGESIZE);

+ 2 - 0
src/video_core/rasterizer_accelerated.h

@@ -3,6 +3,7 @@
 
 #pragma once
 
+#include <mutex>
 #include <boost/icl/interval_map.hpp>
 
 #include "common/common_types.h"
@@ -30,6 +31,7 @@ private:
     using IntervalType = IntervalMap::interval_type;
 
     IntervalMap map;
+    std::mutex map_lock;
     Core::Memory::Memory& cpu_memory;
 };