SPU: Better GETLLAR spin detection

This commit is contained in:
Elad Ashkenazi 2024-06-15 07:29:56 +03:00
parent d5935a37bb
commit 5b973448bf
3 changed files with 44 additions and 20 deletions

View file

@ -677,7 +677,6 @@ public:
// MFC command data
spu_mfc_cmd ch_mfc_cmd;
u32 mfc_cmd_id = 0;
// MFC command queue
spu_mfc_cmd mfc_queue[16]{};
@ -797,7 +796,7 @@ public:
u64 last_succ = 0;
u64 last_gtsc = 0;
u32 last_getllar = umax; // LS address of last GETLLAR (if matches current GETLLAR we can let the thread rest)
u32 last_getllar_id = umax;
u32 last_getllar_gpr1 = umax;
u32 last_getllar_addr = umax;
u32 getllar_spin_count = 0;
u32 getllar_busy_waiting_switch = umax; // umax means the test needs evaluation, otherwise it's a boolean
@ -896,7 +895,6 @@ public:
static atomic_t<u32> g_raw_spu_ctr;
static atomic_t<u32> g_raw_spu_id[5];
static atomic_t<u32> g_spu_work_count;
static atomic_t<u8> g_reservation_waiters[128];
static u32 find_raw_spu(u32 id)
{