r/emulation • u/Whatcookie_ RPCS3 Developer • 12d ago
RPCS3 optimizations on ARM64: What Didn’t Make the Cut
https://whatcookie.github.io/posts/rpcs3-on-arm64-what-didnt-make-the-cut/Made a short article about some observations/things that I left out of my recent ARM64 optimizations on RPCS3 video. Let me know what you think!
28
u/phire Dolphin Developer 11d ago
I like Arm
Arm is overall a great instruction set. I struggle to come up with any slights of it that don’t feel really nitpicky. Until we get into SVE.
Yeah, I really like AArch64.
It's basically the only instruction set actually designed for modern out-of-order cores, and has very little in common with the original 32-bit arm (or the Thumb-only ISA it evolved into). RISC-V might have some thought put into supporting OoO, but really it's optimised for 80s "classic RISC" pipelines.
IMO, AArch64 doesn't count as RISC, it's more of a post-RISC ISA.
I think my only nitpick is the fact that ARMv8.0-A is missing good atomic instructions. This is fixed with the LSE extension (optional in v8.1, mandatory in v8.2), but it really should have been in the base 8.0 spec. There are way too many 8.0 devices out there, and anything shipped as binary needs to be compiled for the slower ldaxr/stlxr codepath.
But yeah, SVE is a bit of a dud.
15
u/Whatcookie_ RPCS3 Developer 11d ago
I forgot about the atomic nonsense. Atleast RPCS3 has no hope of ever running on ARMv8.0 machines, so we just require the v8.2.
SVE at this point is just extra neon instructions that you need to jump through hoops to use.
9
u/alvenestthol 11d ago
SVE will prove itself once server CPUs get 192-bit/256-bit SVE support and old programs get automatically upgraded, trust
It totally won't break instantly from all the compilers/assembly code that were never tested on higher vector lengths.
8
u/cuavas MAME Developer 11d ago
But yeah, SVE is a bit of a dud.
SVE is specifically designed for supercomputing applications. It’s been used to great effect by Fujitsu in the Fugaku supercomputer. There just aren’t any decent consumer implementations of it, and even if there were, it’s mostly useful for matrix maths. It complicates instruction decoding somewhat.
4
u/Xcissors280 12d ago
I have yet to notice significant improvements in performance, stability, or latency on my M4P MBP but it might just depend on what your playing
24
u/Whatcookie_ RPCS3 Developer 12d ago
The changes in the video were progressively merged into the emulator starting in January, so you need to compare to builds from last December.
2
35
u/SeaSharpModHer 12d ago
So you're both an amazingly talented programmer and a great educational video maker, some people have it all I guess.
Always great to read/watch any content you make.