Zandronum for AMD Zen (Linux)

Maps, modifications, add-ons, projects, and other releases for Zandronum. Also includes announcers.
Post Reply
User avatar
penguin
 
Posts: 77
Joined: Tue Aug 28, 2018 5:05 am
Location: Japan
Contact:

Zandronum for AMD Zen (Linux)

#1

Post by penguin » Wed May 11, 2022 2:58 pm

Only linux supported
Support for zen / zen+ / zen2 / zen3
Tested ubuntu 22.04 and ryzen 3570h
Other distributions may need to compile themselves.

Does not necessarily improve performance

For Vsync, set SDL12COMPAT_SYNC_TO_VBLANK=1

Required
  • libjpeg-turbo

    Code: Select all

    sudo apt install libjpeg-turbo8
Highlights
  • Compiled by AOCC
  • Optimized for AMD Zen processor (-march)
  • O3 optimization by AOCC (including additional optimization)
  • Aggressive optimization 😱
  • Replaced Normal LibM with AMD LibM.
  • Removed glext.h
  • sdl12-compat instead of SDL 1.2 (Patched SDL2)
  • Bypassing system libraries by statically linking sdl12-compat.
Compiler flags
Spoiler: Compiler flags (Open)
-DNDEBUG -O3 -pipe -march=znver1/2/3 -ffp-model=fast -ffp-contract=fast -flto=thin -finline-aggressive -fveclib=AMDLIBM -fuse-ld=lld -mllvm -inline-recursion=2 -mllvm -force-vector-interleave=0 -mllvm -enable-strided-vectorization -mllvm -enable-epilogue-vectorization -mllvm -global-vectorize-slp=true -mllvm -region-vectorize -mllvm -enable-loop-vectorization-with-conditions -mllvm -enable-loop-distribute-adv -mllvm -enable-X86-prefetching -mllvm -reduce-array-computations=3 -Wno-unused-command-line-argument -Wl,-lalm

-ffp-model=fast (msvc /fp:fast)
Known issues
  • Broken timestamp, text scaling slider and vid_fps. (cap 200fps in software rendering)
  • Light shader cannot be enabled.
  • There is no CVAR for registering login users as in Windows.
  • round has not been replaced because amd_round was not included in the library. (Nevertheless defined in the header)
  • FullLTO and LTCG fail to load zandronum.pk3
  • Hang up and malloc(): unsorted double linked list corrupted on nexus (Need to test if it was resolved in a new build)
Un?Known issues
  • May be aggressive optimization can break some mods.
Warning
When applying patches, be sure to apply them to the working area. If you apply the patch to the repository, you will not be able to connect online.

Download (GitHub)
My GPG key (For download verification)
Last edited by penguin on Sat May 14, 2022 4:42 am, edited 9 times in total.



User avatar
penguin
 
Posts: 77
Joined: Tue Aug 28, 2018 5:05 am
Location: Japan
Contact:

Re: Zandronum for AMD Zen (Linux)

#4

Post by penguin » Sat May 14, 2022 4:36 am

Updated the binary.
Adjusted the flags to prevent crashes in complex nexus. But it needs testing.
https://github.com/PenguinDOOM/zandronu ... l12-compat

User avatar
penguin
 
Posts: 77
Joined: Tue Aug 28, 2018 5:05 am
Location: Japan
Contact:

Re: Zandronum for AMD Zen (Linux)

#5

Post by penguin » Sun May 15, 2022 12:37 am

If my expectation is correct, the cause of the crash is a floating point flag

Post Reply