mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-07 07:21:25 +12:00
rsx: Workaround for exit deadlock
- Avoids games locking up when the stop button is pressed
This commit is contained in:
parent
cc313b052f
commit
52e8747b83
2 changed files with 10 additions and 0 deletions
|
@ -606,6 +606,13 @@ namespace rsx
|
||||||
|
|
||||||
void thread::on_exit()
|
void thread::on_exit()
|
||||||
{
|
{
|
||||||
|
// Deregister violation handler
|
||||||
|
g_access_violation_handler = nullptr;
|
||||||
|
|
||||||
|
// Clear any pending flush requests to release threads
|
||||||
|
std::this_thread::sleep_for(10ms);
|
||||||
|
do_local_task(rsx::FIFO_state::lock_wait);
|
||||||
|
|
||||||
m_rsx_thread_exiting = true;
|
m_rsx_thread_exiting = true;
|
||||||
g_dma_manager.join();
|
g_dma_manager.join();
|
||||||
}
|
}
|
||||||
|
|
|
@ -545,6 +545,9 @@ VKGSRender::~VKGSRender()
|
||||||
//Wait for device to finish up with resources
|
//Wait for device to finish up with resources
|
||||||
vkDeviceWaitIdle(*m_device);
|
vkDeviceWaitIdle(*m_device);
|
||||||
|
|
||||||
|
// Clear flush requests
|
||||||
|
m_flush_requests.clear_pending_flag();
|
||||||
|
|
||||||
//Texture cache
|
//Texture cache
|
||||||
m_texture_cache.destroy();
|
m_texture_cache.destroy();
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue