New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CELL: Postponed address notifications #14491
Conversation
CPU: 12700KF /w AVX-512 (stock clocks) MGS4 seems to be performing worse. RPCS3-master.log.gz Same with MGO2. |
Changed the code a bit. |
56028bb
to
23e87a4
Compare
Also test Persona 5 maybe. |
I added something that may improve performance and reduce power consumption in Demon's Souls. |
The last commit may behave differently between Intel and AMD cpus and only affects 12+ thread CPUs. |
fc42039
to
d8fc7b4
Compare
9031e46
to
8096da2
Compare
Removed 12+ threads requirement from the last optimization. |
Fixed a performance bug, this seems mostly affecting lower-count CPUs but may affect others. |
rpcs3/Emu/Cell/SPUThread.cpp
Outdated
@@ -4150,7 +4156,7 @@ bool spu_thread::process_mfc_cmd() | |||
|
|||
if (getllar_busy_waiting_switch == 1) | |||
{ | |||
if (utils::has_appropriate_um_wait()) | |||
if (utils::has_um_wait()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nice
With the latest test PR commit and using the usual school hallway scene, P5 shows a minor improvement using default SPU (Auto) and SPURS (Unlimited) settings. Test PR - 106.2 FPS average/98.9 1% FPS Master (15487) - 103.6 FPS average/98.0 1% FPS The fastest result for that scene however, is achieved with the latest master with SPU Auto and SPURS set to 5. Master with SPU Auto/SPURS set to 5 - 112 FPS average/109.6 1% FPS. Tested on a 12700KF/2080TI machine at stock. |
} | ||
} | ||
#endif | ||
else |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Else should be before end of if I'm not mistaken
#define waitpkg_func __attribute__((__target__("waitpkg"))) | ||
#endif | ||
|
||
#if defined(ARCH_X64) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this can be moved above the upper function definitions?
rpcs3/Emu/Cell/lv2/sys_sync.h
Outdated
@@ -465,7 +465,7 @@ struct lv2_obj | |||
|
|||
// While IDM mutex is still locked (this function assumes so) check if the notification is still needed | |||
// Pending flag is meant for forced notification (if the CPU really has pending work it can restore the flag in theory) | |||
if (cpu != &g_to_notify && static_cast<const decltype(cpu_thread::state)*>(cpu)->none_of(cpu_flag::signal + cpu_flag::pending)) | |||
if (0) if (cpu != &g_to_notify && static_cast<const decltype(cpu_thread::state)*>(cpu)->none_of(cpu_flag::signal + cpu_flag::pending)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing explanation.
Also, would probably look and read better if you simply wrote if (false &&
Please compare:
Note: Make sure that you are using the default setting for "Maximum Number Of SPURS Threads" and "Preferred SPU Threads" when testing.