diff --git a/rpcs3/Emu/RSX/D3D12/D3D12GSRender.cpp b/rpcs3/Emu/RSX/D3D12/D3D12GSRender.cpp index 944ac0c24f..488586d3c5 100644 --- a/rpcs3/Emu/RSX/D3D12/D3D12GSRender.cpp +++ b/rpcs3/Emu/RSX/D3D12/D3D12GSRender.cpp @@ -1215,10 +1215,15 @@ void D3D12GSRender::semaphorePGRAPHBackendRelease(u32 offset, u32 value) void D3D12GSRender::semaphorePFIFOAcquire(u32 offset, u32 value) { + const std::chrono::time_point enterWait = std::chrono::system_clock::now(); while (true) { u32 val = vm::read32(m_label_addr + offset); if (val == value) break; + std::chrono::time_point waitPoint = std::chrono::system_clock::now(); + int elapsedTime = std::chrono::duration_cast(waitPoint - enterWait).count(); + if (elapsedTime > 0) + LOG_ERROR(RSX, "Has wait for more than a second for semaphore acquire"); std::this_thread::yield(); } }