Game "Transport Fever 2" crash when finishing loading new level / first frame of the new level
A native 64-bit game "Transport Fever 2" ( https://store.steampowered.com/app/446800/Transport_Fever/ , https://www.transportfever2.com/ )
(Note: To run it on modern distro / LLVM, you might want to remove the provided libstdc++*.so*
files with the game, otherwise the mesa GL loader will refuse to load radeonsi or radv, as they depende on libllvm which links to a libstdc++ with more modern ABI than what game provides. Remove using: rm ~/.steam/steam/steamapps/common/Transport\ Fever\ 2/libstdc++.so.6*
).
zink-wip @ e9d66281
AMD Radeon R9 Fury X (FIJI, GFX8)
Note: After launching the game, you should go to settings the change the "Graphics API" from Vulkan to OpenGL, then apply, and confirm after the engine restart. The game receive a Vulkan renderer in a recent update (2021-02-23), but still has OpenGL renderer available.
Reproduce: Start the game. Select "Free game", select terrain type "Temperate", click "Next", click "Start".
Thread 53 "Transpor:gdrv0" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fe708ff9700 (LWP 3476289)]
0x00007fe7ba5a39b9 in radv_emit_direct_draw_packets (stride=8, use_opaque=0, minfo=0x7fe708ff8200, drawCount=7, info=0x7fe708ff7620, cmd_buffer=0x5b8e060) at ../../src/amd/vulkan/radv_cmd_buffer.c:5144
5144 const uint32_t view_mask = cmd_buffer->state.subpass->view_mask;
(gdb) bt
#0 0x00007fe7ba5a39b9 in radv_emit_direct_draw_packets (stride=8, use_opaque=0, minfo=0x7fe708ff8200, drawCount=7, info=0x7fe708ff7620, cmd_buffer=0x5b8e060) at ../../src/amd/vulkan/radv_cmd_buffer.c:5144
#1 radv_CmdDrawMultiMESA (commandBuffer=0x5b8e060, drawCount=7, pVertexInfo=0x7fe708ff8200, instanceCount=<optimized out>, firstInstance=<optimized out>, stride=8) at ../../src/amd/vulkan/radv_cmd_buffer.c:5447
#2 0x00007fe7c22eff64 in draw (needs_drawid=false, draw_id=0, num_draws=7, draws=<optimized out>, dinfo=0x6a92698, ctx=0x5b7f460) at ../../src/gallium/drivers/zink/zink_screen.h:279
#3 zink_draw_vbo (pctx=0x5b7f460, dinfo=<optimized out>, dindirect=<optimized out>, draws=<optimized out>, num_draws=<optimized out>) at ../../src/gallium/drivers/zink/zink_draw.c:780
#4 0x00007fe7c1f336a0 in tc_batch_execute (job=0x6a912c0, thread_index=<optimized out>) at ../../src/gallium/auxiliary/util/u_threaded_context.c:219
#5 0x00007fe7c18fb6b8 in util_queue_thread_func (input=input@entry=0x6afc980) at ../../src/util/u_queue.c:313
#6 0x00007fe7c18fb1a5 in impl_thrd_routine (p=<optimized out>) at ../../include/c11/threads_posix.h:87
#7 0x00007fe7caebcea7 in start_thread (arg=<optimized out>) at pthread_create.c:477
#8 0x00007fe7ca7cedef in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95