mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-07-28 04:54:30 +00:00
Copy to avoid deadlock
This commit is contained in:
parent
e2f56feb8b
commit
442a7ee509
@ -469,11 +469,13 @@ bool Rasterizer::BindResources(const Pipeline* pipeline) {
|
|||||||
// First, import any queued host memory, then sync every mapped
|
// First, import any queued host memory, then sync every mapped
|
||||||
// region that is cached on GPU memory.
|
// region that is cached on GPU memory.
|
||||||
buffer_cache.CoverQueuedRegions();
|
buffer_cache.CoverQueuedRegions();
|
||||||
{
|
// I feel bad for doing this copy
|
||||||
|
auto mapped_ranges_copy = ([this]() {
|
||||||
std::shared_lock lock(mapped_ranges_mutex);
|
std::shared_lock lock(mapped_ranges_mutex);
|
||||||
for (const auto& range : mapped_ranges) {
|
return mapped_ranges;
|
||||||
buffer_cache.SynchronizeRange(range.lower(), range.upper() - range.lower());
|
})();
|
||||||
}
|
for (const auto& range : mapped_ranges_copy) {
|
||||||
|
buffer_cache.SynchronizeRange(range.lower(), range.upper() - range.lower());
|
||||||
}
|
}
|
||||||
buffer_cache.ResetFaultReadbackBuffer();
|
buffer_cache.ResetFaultReadbackBuffer();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user