1
0
mirror of https://github.com/RPCS3/rpcs3.git synced 2024-11-22 10:42:36 +01:00

RSXOffload: fix dma_manager::sync() freeze on exit

Its logic was completely broken.
This commit is contained in:
Nekotekina 2020-02-28 19:55:43 +03:00
parent f335d034fc
commit ac2581659a

View File

@ -155,7 +155,7 @@ namespace rsx
{
const auto _thr = g_fxo->get<dma_thread>();
if (_thr->m_enqueued_count.load() < _thr->m_processed_count.load()) [[likely]]
if (_thr->m_enqueued_count.load() <= _thr->m_processed_count.load()) [[likely]]
{
// Nothing to do
return true;
@ -169,7 +169,7 @@ namespace rsx
return false;
}
while (_thr->m_enqueued_count.load() < _thr->m_processed_count.load())
while (_thr->m_enqueued_count.load() > _thr->m_processed_count.load())
{
rsxthr->on_semaphore_acquire_wait();
_mm_pause();
@ -177,7 +177,7 @@ namespace rsx
}
else
{
while (_thr->m_enqueued_count.load() < _thr->m_processed_count.load())
while (_thr->m_enqueued_count.load() > _thr->m_processed_count.load())
_mm_pause();
}