rpcs3 icon indicating copy to clipboard operation
rpcs3 copied to clipboard

SPU: Update CELL Communication Performance

Open elad335 opened this issue 2 months ago • 9 comments

Optimizations:

  • cellRtc functions were called non-stop by the PPU thread which use sys_memory_get_page_attribute internally. The writer lock in sys_memory_get_page_attribute was causing SPUs to wait unjustly.
  • Fast path without locking VM has been added to sys_rsx_context_iomap.
  • Exclude spu_thread::reservation_check address 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_check when the address is on the same page as GETLLAR's effective address.

Fixes https://github.com/RPCS3/rpcs3/issues/14724

elad335 avatar Oct 31 '25 06:10 elad335

Added "SPURS oriented thread waiting" which is gonna replace "Preferred SPU Threads" setting and be active by default.

elad335 avatar Nov 02 '25 07:11 elad335

Special settings tweaked from default:

Clocks Scale: 800% Vblank Frequency: 480Hz Frame Limit: Off Preferred SPU Threads: Auto (as default)

PR:

image

Master

image

elad335 avatar Nov 02 '25 09:11 elad335

performance are regressed on some games such as KZ3

PR:

kz3_pr

MASTER:

kz3_master

digant73 avatar Nov 02 '25 10:11 digant73

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

ratchet tod

God of War 3

gow3

Sonic Unleahsed

sonic u

MsDarkLow avatar Nov 02 '25 16:11 MsDarkLow

I've pushed an experimental update, please test. If it works I'll put it under a special setting.

elad335 avatar Nov 06 '25 15:11 elad335

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

ratchet tod - pt2

God of War 3

gow3 - pt2

Sonic Unleahsed

sonic u - pt2

Metal Gear Soild 4

MGS4 - pt2

MsDarkLow avatar Nov 06 '25 18:11 MsDarkLow

kz3 is still very bad (40 fps vs 69). GPU usage in particular is very low.

EDIT: attached also the log

RPCS3.zip

kz3_pr_1

digant73 avatar Nov 06 '25 18:11 digant73

bad performance also in infamous 2 demo (50 fps vs 80)

PR:

image

MASTER:

image

digant73 avatar Nov 06 '25 19:11 digant73

still very bad performance on KZ3, Infamous 2 demo etc..

kz3_pr_2

digant73 avatar Nov 10 '25 18:11 digant73