SPU: Update CELL Communication Performance
Optimizations:
- cellRtc functions were called non-stop by the PPU thread which use
sys_memory_get_page_attributeinternally. The writer lock insys_memory_get_page_attributewas causing SPUs to wait unjustly. - Fast path without locking VM has been added to
sys_rsx_context_iomap. - Exclude
spu_thread::reservation_checkaddress receptacle from writer_lock detection and waiting. - Fix
spu_thread::reservation_check(hash)overload for main and stack memory. - Add fast path without checking allocation for
spu_thread::reservation_checkwhen the address is on the same page asGETLLAR's effective address.
Fixes https://github.com/RPCS3/rpcs3/issues/14724
Added "SPURS oriented thread waiting" which is gonna replace "Preferred SPU Threads" setting and be active by default.
Special settings tweaked from default:
Clocks Scale: 800% Vblank Frequency: 480Hz Frame Limit: Off Preferred SPU Threads: Auto (as default)
PR:
Master
performance are regressed on some games such as KZ3
PR:
MASTER:
i9-13900K | RTX 3080 Ratchet & Clank Tools of Destruction - Improved a little bit. 88.3 -> 92.5 God of War 3 - Very small Regression. 62.4 -> 61.0 Sonic Unleashed - Tremendously reduced performance. From a stable 42.4 to very unstable 32.4
Ratchet & Clank
God of War 3
Sonic Unleahsed
I've pushed an experimental update, please test. If it works I'll put it under a special setting.
i9-13900K | RTX 3080 After these updates, all four games I've tested before have improved! Ratchet & Clank Tools of Destruction - 88.3 -> 96.0 (earlier in the pr was at 92.0) God of War 3 - 62.0 -> 64.0 (earlier in the pr it was 61.0) Sonic Unleashed - 42.4 -> 43.4 (earlier in the pr it was 32.4) Metal Gear Soils 4 - 95.4 -> 96.3
Ratchet & Clank
God of War 3
Sonic Unleahsed
Metal Gear Soild 4
kz3 is still very bad (40 fps vs 69). GPU usage in particular is very low.
EDIT: attached also the log
bad performance also in infamous 2 demo (50 fps vs 80)
PR:
MASTER:
still very bad performance on KZ3, Infamous 2 demo etc..