RobertBeckebans / RBDOOM-3-BFG

Doom 3 BFG Edition source port with updated DX12 / Vulkan renderer and modern game engine features
https://www.moddb.com/mods/rbdoom-3-bfg
GNU General Public License v3.0
1.46k stars 252 forks source link

Debian 12: builds fine but segfaults when running #935

Open abalfoort opened 1 week ago

abalfoort commented 1 week ago

Today I updated source (1.6.0.1403) with:

git submodule update --init --recursive
git pull

This builds fine (see build.log).

As usual, I copied the exe and the base dir to a renamed subdir of the game dir (mod_RBDoom3BFG). I started the game with: ./RBDoom3BFG +set fs_game mod_RBDoom3BFG +set developer 1 +set logfile 2 This then segfaults (see qconsole.log)

...
Loading shader program builtin/post/exposure
signal caught: Segmentation fault
si_code 2
Trying to exit gracefully..
session->GetSaveGameManager().CancelToTerminate();
soundSystem->StopAllSounds();
...

build.log qconsole.log

My previous build (1.6.0 preview.1403) still works with the same command: qconsole_1.6.0 preview.1403.log

[EDIT] gdb hangs when trying to debug the exe and have to kill the process from another terminal.

...
Loading shader program builtin/post/exposure

Thread 1 "RBDoom3BFG" received signal SIGSEGV, Segmentation fault.
__memset_avx2_unaligned_erms () at ../sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S:252
252     ../sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S: No such file or directory.
Exception ignored in: <gdb._GdbFile object at 0x7f9768764250>
Traceback (most recent call last):
  File "/usr/share/gdb/python/gdb/__init__.py", line 56, in flush
    def flush(self):

KeyboardInterrupt: 
RobertBeckebans commented 17 hours ago

Oh well I looked into this today and it also happens also on Fedora 40.

@SRSaunders It crashes in AMD's Vulkan Memory Allocator since the merge of the MOC branch. I only tested compiling the latest changes but not running them. If I go back to the commit d747be22d67350ac2f8ba317e2281270b69263cd where I had MOC running on Linux on 27 August without precompiled headers then it works again. I suspect it has something to do with the latest CMakeLists.txt changes. Even more interesting is that the current master crashes in the initialization of the renderer backend / VertexCache so that is even before any MOC initialization code is called. The first solution was compiling without MOC: -DUSE_INTRINSICS_SSE=OFF

However just turning off VMA also works with -DUSE_VMA=OFF :/