mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-07-27 20:44:28 +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
|
||||
// region that is cached on GPU memory.
|
||||
buffer_cache.CoverQueuedRegions();
|
||||
{
|
||||
// I feel bad for doing this copy
|
||||
auto mapped_ranges_copy = ([this]() {
|
||||
std::shared_lock lock(mapped_ranges_mutex);
|
||||
for (const auto& range : mapped_ranges) {
|
||||
buffer_cache.SynchronizeRange(range.lower(), range.upper() - range.lower());
|
||||
}
|
||||
return mapped_ranges;
|
||||
})();
|
||||
for (const auto& range : mapped_ranges_copy) {
|
||||
buffer_cache.SynchronizeRange(range.lower(), range.upper() - range.lower());
|
||||
}
|
||||
buffer_cache.ResetFaultReadbackBuffer();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user