I can try suggesting some env vars to run the game with when I'm on my PC.
It has been running fine for months for me but I keep reading around that it's specifically a problem with Linux, so I suspect my excessive tinkering accidentally got the game working
wall of text
It turns out I don't have many env vars:
# idk if this does anything, I haven't been using mangohud for a bit
MANGOHUD=0
# I don't even know where I found this, but I limit my games' framerates whenever I can so I use it
DXVK_FRAME_RATE=60
# This does/did actually fix an issue, where the game would stutter after a while IF YOU DON'T USE THE STEAM INTEGRATION (which is true by default if you use gamescope)
LD_PRELOAD=""
However, there's a whole bunch of things my launcher script does.
For one, every time it runs, I hardcoded a 1/16 chance to delete some caches - a friend of mine (on Windows) told me that deleting his shader cache fixed frequent crashes on several occasions.
Those caches are:
$your_steam_library/steamapps/common/Helldivers\ 2/vkd3d-proton.cache
$your_steam_library/steamapps/common/Helldivers\ 2/vkd3d-proton.cache.write
$your_steam_library/steamapps/compatdata/553850/pfx/drive_c/users/steamuser/AppData/Roaming/Arrowhead/Helldivers2/shader_cache (you can just nuke the entire directory)
I also run HD2 in Hyprland (not that I would expect anyone to base their WM/DE choice entirely on a single game);
finally, I run it with gamescope, more specifically:
gamescope --backend wayland -F nearest -w 1920 -h 1080 -f -r 60 -o 30 -- $cmd
# ... where `$cmd` is the array of arguments provided by Steam when you specify launch options as such: `/path/to/my-launcher.zsh %command%`
# (this is Zsh syntax, no quotes are needed around `$cmd` for the array to expand properly)