mirror of
https://github.com/RPCSX/rpcsx.git
synced 2026-04-04 14:08:37 +00:00
RawSPU: Reinvoke pending interrupts if missed
This commit is contained in:
parent
9c824aa0b5
commit
961d41d0bd
5 changed files with 130 additions and 30 deletions
|
|
@ -1355,6 +1355,8 @@ ppu_thread::~ppu_thread()
|
|||
perf_log.notice("Perf stats for instructions: total %u", exec_bytes / 4);
|
||||
}
|
||||
|
||||
void ppu_interrupt_thread_entry(ppu_thread&, ppu_opcode_t, be_t<u32>*, struct ppu_intrp_func*);
|
||||
|
||||
ppu_thread::ppu_thread(const ppu_thread_params& param, std::string_view name, u32 prio, int detached)
|
||||
: cpu_thread(idm::last_id())
|
||||
, prio(prio)
|
||||
|
|
@ -1375,6 +1377,14 @@ ppu_thread::ppu_thread(const ppu_thread_params& param, std::string_view name, u3
|
|||
gpr[3] = param.arg0;
|
||||
gpr[4] = param.arg1;
|
||||
}
|
||||
else
|
||||
{
|
||||
cmd_list
|
||||
({
|
||||
{ ppu_cmd::ptr_call, 0 },
|
||||
std::bit_cast<u64>(&ppu_interrupt_thread_entry)
|
||||
});
|
||||
}
|
||||
|
||||
// Trigger the scheduler
|
||||
state += cpu_flag::suspend;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue