mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-07-27 20:44:28 +00:00
Bring back applying pending operations in wait
This commit is contained in:
parent
95af4451ec
commit
c6757763e4
@ -475,7 +475,6 @@ bool Rasterizer::BindResources(const Pipeline* pipeline) {
|
|||||||
pipeline->BindResources(set_writes, buffer_barriers, push_data);
|
pipeline->BindResources(set_writes, buffer_barriers, push_data);
|
||||||
|
|
||||||
if (uses_dma && !fault_process_pending) {
|
if (uses_dma && !fault_process_pending) {
|
||||||
fault_process_pending = true;
|
|
||||||
// We only use fault buffer for DMA right now.
|
// We only use fault buffer for DMA right now.
|
||||||
{
|
{
|
||||||
std::shared_lock lock{dma_sync_mapped_ranges_mutex};
|
std::shared_lock lock{dma_sync_mapped_ranges_mutex};
|
||||||
@ -483,7 +482,6 @@ bool Rasterizer::BindResources(const Pipeline* pipeline) {
|
|||||||
buffer_cache.SynchronizeRange(range.lower(), range.upper() - range.lower());
|
buffer_cache.SynchronizeRange(range.lower(), range.upper() - range.lower());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// buffer_cache.MemoryBarrier();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fault_process_pending |= uses_dma;
|
fault_process_pending |= uses_dma;
|
||||||
|
@ -91,8 +91,11 @@ void Scheduler::Wait(u64 tick) {
|
|||||||
}
|
}
|
||||||
master_semaphore.Wait(tick);
|
master_semaphore.Wait(tick);
|
||||||
|
|
||||||
// We should apply pending operations until the tick we are waiting for.
|
// Apply pending operations until the wait tick
|
||||||
// but that may introduce unpredictable timing issues.
|
while (!pending_ops.empty() && pending_ops.front().gpu_tick <= tick) {
|
||||||
|
pending_ops.front().callback();
|
||||||
|
pending_ops.pop();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Scheduler::AllocateWorkerCommandBuffers() {
|
void Scheduler::AllocateWorkerCommandBuffers() {
|
||||||
|
Loading…
Reference in New Issue
Block a user