mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-11-16 23:17:29 +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)
|
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;
|
raddr = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user