Browse Source

Revert "[video_core] Replacing recursive mutex with simple mutex lock"

qcomopts2
CamilleLaVey 1 month ago
parent
commit
06a179fb2a
  1. 2
      src/video_core/buffer_cache/buffer_cache_base.h
  2. 4
      src/video_core/query_cache.h
  3. 2
      src/video_core/renderer_opengl/gl_rasterizer.cpp
  4. 2
      src/video_core/renderer_vulkan/vk_rasterizer.cpp
  5. 2
      src/video_core/texture_cache/texture_cache_base.h

2
src/video_core/buffer_cache/buffer_cache_base.h

@ -318,7 +318,7 @@ public:
} while (channel_state->has_deleted_buffers); } while (channel_state->has_deleted_buffers);
} }
std::mutex mutex;
std::recursive_mutex mutex;
Runtime& runtime; Runtime& runtime;
private: private:

4
src/video_core/query_cache.h

@ -300,7 +300,7 @@ private:
} }
void AsyncFlushQuery(CachedQuery* query, std::optional<u64> timestamp, void AsyncFlushQuery(CachedQuery* query, std::optional<u64> timestamp,
std::unique_lock<std::mutex>& lock) {
std::unique_lock<std::recursive_mutex>& lock) {
const AsyncJobId new_async_job_id = slot_async_jobs.insert(); const AsyncJobId new_async_job_id = slot_async_jobs.insert();
{ {
AsyncJob& async_job = slot_async_jobs[new_async_job_id]; AsyncJob& async_job = slot_async_jobs[new_async_job_id];
@ -346,7 +346,7 @@ private:
VideoCore::RasterizerInterface& rasterizer; VideoCore::RasterizerInterface& rasterizer;
Tegra::MaxwellDeviceMemoryManager& device_memory; Tegra::MaxwellDeviceMemoryManager& device_memory;
mutable std::mutex mutex;
mutable std::recursive_mutex mutex;
std::unordered_map<u64, std::vector<CachedQuery>> cached_queries; std::unordered_map<u64, std::vector<CachedQuery>> cached_queries;

2
src/video_core/renderer_opengl/gl_rasterizer.cpp

@ -713,7 +713,7 @@ void RasterizerOpenGL::AccelerateInlineToMemory(GPUVAddr address, size_t copy_si
} }
gpu_memory->WriteBlockUnsafe(address, memory.data(), copy_size); gpu_memory->WriteBlockUnsafe(address, memory.data(), copy_size);
{ {
std::unique_lock<std::mutex> lock{buffer_cache.mutex};
std::unique_lock<std::recursive_mutex> lock{buffer_cache.mutex};
if (!buffer_cache.InlineMemory(*cpu_addr, copy_size, memory)) { if (!buffer_cache.InlineMemory(*cpu_addr, copy_size, memory)) {
buffer_cache.WriteMemory(*cpu_addr, copy_size); buffer_cache.WriteMemory(*cpu_addr, copy_size);
} }

2
src/video_core/renderer_vulkan/vk_rasterizer.cpp

@ -882,7 +882,7 @@ void RasterizerVulkan::AccelerateInlineToMemory(GPUVAddr address, size_t copy_si
} }
gpu_memory->WriteBlockUnsafe(address, memory.data(), copy_size); gpu_memory->WriteBlockUnsafe(address, memory.data(), copy_size);
{ {
std::unique_lock<std::mutex> lock{buffer_cache.mutex};
std::unique_lock<std::recursive_mutex> lock{buffer_cache.mutex};
if (!buffer_cache.InlineMemory(*cpu_addr, copy_size, memory)) { if (!buffer_cache.InlineMemory(*cpu_addr, copy_size, memory)) {
buffer_cache.WriteMemory(*cpu_addr, copy_size); buffer_cache.WriteMemory(*cpu_addr, copy_size);
} }

2
src/video_core/texture_cache/texture_cache_base.h

@ -269,7 +269,7 @@ public:
/// Prepare an image to be used /// Prepare an image to be used
void PrepareImage(ImageId image_id, bool is_modification, bool invalidate); void PrepareImage(ImageId image_id, bool is_modification, bool invalidate);
std::mutex mutex;
std::recursive_mutex mutex;
private: private:
/// Iterate over all page indices in a range /// Iterate over all page indices in a range

Loading…
Cancel
Save