rsx: Hotfix for semaphore timeout bug

- Add pending flip requests as a reason to invoke the RSX local task handler and release the vblank semaphore
This commit is contained in:
kd-11 2019-08-26 21:41:37 +03:00 committed by kd-11
parent 32b5b11a83
commit 3317e13b64
2 changed files with 5 additions and 2 deletions

View File

@ -1865,7 +1865,8 @@ void GLGSRender::on_invalidate_memory_range(const utils::address_range &range, r
void GLGSRender::on_semaphore_acquire_wait()
{
if (!work_queue.empty())
if (!work_queue.empty() ||
(async_flip_requested & flip_request::emu_requested))
{
do_local_task(rsx::FIFO_state::lock_wait);
}

View File

@ -741,7 +741,9 @@ void VKGSRender::on_invalidate_memory_range(const utils::address_range &range, r
void VKGSRender::on_semaphore_acquire_wait()
{
if (m_flush_requests.pending() || m_queue_status & flush_queue_state::deadlock)
if (m_flush_requests.pending() ||
(async_flip_requested & flip_request::emu_requested) ||
(m_queue_status & flush_queue_state::deadlock))
{
do_local_task(rsx::FIFO_state::lock_wait);
}