mirror of
https://github.com/RPCSX/rpcsx.git
synced 2026-04-04 22:19:02 +00:00
vk: Implement multithreaded command submission
- A few nagging issues remain, specifically that partial command stream largely caused by poor synchronization structures for partial CS flush and also the fact that occlusion map entries wait on a command buffer and not an EID!
This commit is contained in:
parent
5be7f08965
commit
a51395370e
14 changed files with 283 additions and 196 deletions
|
|
@ -57,6 +57,9 @@ namespace rsx
|
|||
static_cast<rsx::primitive_type>(m_current_job->aux_param0),
|
||||
m_current_job->length);
|
||||
break;
|
||||
case callback:
|
||||
rsx::get_current_renderer()->renderctl(m_current_job->aux_param0, m_current_job->src);
|
||||
break;
|
||||
default:
|
||||
ASSUME(0);
|
||||
fmt::throw_exception("Unreachable" HERE);
|
||||
|
|
@ -119,6 +122,15 @@ namespace rsx
|
|||
}
|
||||
}
|
||||
|
||||
// Backend callback
|
||||
void dma_manager::backend_ctrl(u32 request_code, void* args)
|
||||
{
|
||||
verify(HERE), g_cfg.video.multithreaded_rsx;
|
||||
|
||||
++m_enqueued_count;
|
||||
m_work_queue.push(request_code, args);
|
||||
}
|
||||
|
||||
// Synchronization
|
||||
bool dma_manager::is_current_thread() const
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue