Repository navigation
[Testers Needed][Performance] SPU: Task-based SPURS limiter - #16109
Conversation
0473d93 to
e782093
Compare
|
Raptor Lake CPU @ 4GHz & set to 4 Cores and 4 Threads, in the BIOS. |
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
That much is obvious, because using Unlimited means you're not testing any of the code in this PR. This is modifying the behaviour when using the Max SPURS Threads setting, notably allowing a lower count on some games, which helps thread starved CPUs. |
|
|
||
| case SPU_RdEventStat: | ||
| { | ||
| const bool is_spurs_task_wait = pc == 0x11a8 && group->max_run != 6 && spurs_addr; |
There was a problem hiding this comment.
Can we move some of the thread scheduling to their own files/classes? It would greatly improve readability. It's something the emulator really needs in general.
In particular this case is so long it kinda breaks all expectations of what a switch-case should be. Just something to think about.
|
Pushed an update that may or may not improve performance, also fixes crashes with RawSPU. |
|
Performance regressions -> https://github.com/RPCS3/rpcs3/issues/new/choose |




Instead of limiting how many SPURS threads are initialized, limit how many concurrent SPURS tasks are active at the same time.
Makes it compatible with The Last Of Us (because it uses the last thread in its group for special tasks, this should make it be able operate at times too).
May perform differently than the how it the SPURS limiter was before, needs testing.
Edit: this has effect on the SPURS limiter setting in advanced tab, when setting to other values than unlimited.
From @MsDarkLow testing SPURS limit:
Yakuza Dead Souls, 58.3 -> 68.1
Sonic Unleashed, 28.7 -> 44.1