Update: I am not really a programmer but did manage to crack the nut of inserting optimizations into GZDoom's byzantine build system. Follow the directions at
this page, finish the initial build, and then navigate to ~/gzdoom_build/gzdoom/build/CMakeCache.txt (or wherever you're keeping the source code). Open that file, navigate to the line (possibly line 68):
//Flags used by the CXX compiler during RELEASE builds.
The following line is, by default:
CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
Change it to:
CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG -mcpu=power9 -DNO_WARN_X86_INTRINSICS
Repeat this for the line (possibly line 94):
//Flags used by the C compiler during RELEASE builds.
changing the subsequent line to:
CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG -mcpu=power9 -DNO_WARN_X86_INTRINSICS
Re-run the build instructions, which will overwrite the old executable with the improved one. This doesn't do anything about periodic performance issues for demanding wads using hardware rendering, but software rendering is
much nicer!
Edit: In thinking about this since I have a sinking feeling that CMake is performing an early test to determine SIMD compatibility that Power9 isn’t passing, as there are versions of a number of software routines that are in individual files with and without SSE2 optimizations. It is also smart enough to determine ppc64 as a build environment, though this is tied to prior PPC Mac support… more investigation is under way, though -mcpu=power9 is already a big improvement. More info to follow.