Raptor Computing Systems Community Forums (BETA)
Software => Applications and Porting => Topic started by: Hasturtium on July 30, 2023, 12:49:02 pm
-
I talked about this a bit in the #talos-workstation channel over on Libera.Chat, but here goes: the short answer is that GZDoom works. All of the many libraries GZDoom takes advantage of run natively in Power, save for Asmjit (https://asmjit.com/), which is used to speed up execution of ZScript. I was wrong in the crispy-doom thread: enforcing -mcpu=power9 made a significant performance difference over the stock build options, but -DNO_WARN_X86_INTRINSICS makes no difference because of a prior commit (https://github.com/ZDoom/gzdoom/commit/8892cb619d31975394acf12b5ff52931082789e6) that disables intrinsics outright for non-x86 architectures (apparently tied to disabling AsmJit for those platforms). With that limitation in mind, the biggest single issue for GZDoom speed comes down to a lack of SIMD optimization, which apparently makes a small difference in the hardware renderer and a very big difference in the true color software renderer. From what I've read the 8-bit software renderer doesn't leverage SSE2, and it flies at 1440p or higher on my eight core machine.
GZDoom currently detects Power9 as ppc64. Defining ppc64le as a platform and then forcing -DNO_WARN_X86_INTRINSICS specifically for it would probably be a lot less demanding than generating hand-tuned Power assembly, but I do not know whether that would break the current method of disabling AsmJit. Whether this would work on Power8 is up for debate - I don't know if its lack of VSX-3 would impact SSE translation. I need to allocate more time to scrutinize the source and figure out what needs patching, but if anybody wants to beat me to the punch, they are welcome to.
-
How much gain in term FPS I am just curious
-
I'm not sure about the hardware renderer, but the devs consider it indispensable for the true color software renderer. I'd expect gains north of 50% when intrinsics are enabled.
-
For Fedora users, you can find the RPM at https://copr.fedorainfracloud.org/coprs/nalika/gzdoom/