mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-06 06:51:26 +12:00
SPU: Optimize cellSpurs reservations
This commit is contained in:
parent
b053b1e200
commit
bc22df8ba8
1 changed files with 17 additions and 1 deletions
|
@ -3897,8 +3897,24 @@ bool spu_thread::do_putllc(const spu_mfc_cmd& args)
|
||||||
}())
|
}())
|
||||||
{
|
{
|
||||||
if (raddr)
|
if (raddr)
|
||||||
|
{
|
||||||
|
if (raddr != spurs_addr || pc != 0x11e4)
|
||||||
{
|
{
|
||||||
vm::reservation_notifier_notify(addr);
|
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;
|
raddr = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue