mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-12-26 12:17:32 +00:00
SPU: Optimize cellSpurs reservations
This commit is contained in:
parent
b053b1e200
commit
bc22df8ba8
@ -3898,7 +3898,23 @@ bool spu_thread::do_putllc(const spu_mfc_cmd& args)
|
||||
{
|
||||
if (raddr)
|
||||
{
|
||||
vm::reservation_notifier_notify(addr);
|
||||
if (raddr != spurs_addr || pc != 0x11e4)
|
||||
{
|
||||
vm::reservation_notifier_notify(addr);
|
||||
}
|
||||
else
|
||||
{
|
||||
const u32 thread_bit_mask = (1u << index);
|
||||
constexpr usz SPU_IDLE = 0x73;
|
||||
|
||||
const bool switched_from_running_to_idle = (static_cast<u8>(rdata[SPU_IDLE]) & thread_bit_mask) == 0 && (_ref<u8>(0x100 + SPU_IDLE) & thread_bit_mask) != 0;
|
||||
|
||||
if (switched_from_running_to_idle)
|
||||
{
|
||||
vm::reservation_notifier_notify(addr);
|
||||
}
|
||||
}
|
||||
|
||||
raddr = 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user