mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-11-22 10:42:36 +01:00
RSX exception fix
VBlank thread management fix
This commit is contained in:
parent
2af86e363c
commit
ae634bb87e
@ -278,6 +278,7 @@ D3D12GSRender::~D3D12GSRender()
|
||||
|
||||
void D3D12GSRender::on_exit()
|
||||
{
|
||||
return GSRender::on_exit();
|
||||
}
|
||||
|
||||
bool D3D12GSRender::do_method(u32 cmd, u32 arg)
|
||||
|
@ -611,6 +611,8 @@ void GLGSRender::on_exit()
|
||||
m_attrib_ring_buffer.remove();
|
||||
m_uniform_ring_buffer.remove();
|
||||
m_index_ring_buffer.remove();
|
||||
|
||||
return GSRender::on_exit();
|
||||
}
|
||||
|
||||
void nv4097_clear_surface(u32 arg, GLGSRender* renderer)
|
||||
|
@ -62,7 +62,7 @@ namespace rsx
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
LOG_ERROR(RSX, "Cache file '%s' ignored", entry.name);
|
||||
LOG_WARNING(RSX, "Cache file '%s' ignored", entry.name);
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -376,7 +376,7 @@ namespace rsx
|
||||
|
||||
last_flip_time = get_system_time() - 1000000;
|
||||
|
||||
scope_thread vblank("VBlank Thread", [this]()
|
||||
m_vblank_thread = thread_ctrl::spawn("VBlank Thread", [this]()
|
||||
{
|
||||
const u64 start_time = get_system_time();
|
||||
|
||||
@ -484,9 +484,18 @@ namespace rsx
|
||||
}
|
||||
}
|
||||
|
||||
void thread::on_exit()
|
||||
{
|
||||
if (m_vblank_thread)
|
||||
{
|
||||
m_vblank_thread->join();
|
||||
m_vblank_thread.reset();
|
||||
}
|
||||
}
|
||||
|
||||
std::string thread::get_name() const
|
||||
{
|
||||
return "rsx::thread"s;
|
||||
return "rsx::thread";
|
||||
}
|
||||
|
||||
void thread::fill_scale_offset_data(void *buffer, bool is_d3d) const
|
||||
|
@ -189,6 +189,8 @@ namespace rsx
|
||||
|
||||
class thread : public named_thread
|
||||
{
|
||||
std::shared_ptr<thread_ctrl> m_vblank_thread;
|
||||
|
||||
protected:
|
||||
std::stack<u32> m_call_stack;
|
||||
|
||||
@ -267,6 +269,7 @@ namespace rsx
|
||||
virtual ~thread();
|
||||
|
||||
virtual void on_task() override;
|
||||
virtual void on_exit() override;
|
||||
|
||||
public:
|
||||
virtual std::string get_name() const override;
|
||||
|
@ -754,6 +754,8 @@ void VKGSRender::on_init_thread()
|
||||
void VKGSRender::on_exit()
|
||||
{
|
||||
m_texture_cache.destroy();
|
||||
|
||||
return GSRender::on_exit();
|
||||
}
|
||||
|
||||
void VKGSRender::clear_surface(u32 mask)
|
||||
|
Loading…
Reference in New Issue
Block a user