ZDoom / gzdoom

GZDoom is a feature centric port for all Doom engine games, based on ZDoom, adding an OpenGL renderer and powerful scripting capabilities
http://zdoom.org
GNU General Public License v3.0
2.48k stars 540 forks source link

[BUG] GZDoom crashes during level loading #2436

Closed XargonWan closed 6 months ago

XargonWan commented 7 months ago

GZDoom version

GZDoom g4.11.3-m SDL version, Flatpak (latest)

Which game are you running with GZDoom?

Doom

What Operating System are you using?

Linux x86_64

Please describe your specific OS version

Steam Deck, built in a flatpak environment (RetroDECK)

Relevant hardware info

Steam Deck (not OLED)

Have you checked that no other similar issue already exists?

A clear and concise description of what the bug is.

Whenever I load whatever game (doom, doom 2, sigil...) it crashes during the level loading.

Steps to reproduce the behaviour.

Explain how to reproduce

  1. load any wad or iwad file, eg doom.wad
  2. new game -> enter -> enter
  3. crash

Your configuration

a

Provide a Log

gzdoom -config /var/config/gzdoom/gzdoom.ini -iwad ~/retrodeck/roms/doom/doom.wad +set developer 1 GZDoom g4.11.3-m - 2023-10-26 15:18:50 -0400 - SDL version Compiled on Mar 6 2024

OS: KDE Flatpak runtime, Linux 6.5.0-21-generic on x86_64 GZDoom version g4.11.3-m W_Init: Init WADfiles. adding /var/data/gzdoom/gzdoom.pk3, 672 lumps adding /app/share/games/doom/game_support.pk3, 3307 lumps adding /home/jay/retrodeck/roms/doom/doom.wad, 2306 lumps adding /app/share/games/doom/game_widescreen_gfx.pk3, 214 lumps S_Init: Setting up sound. I_InitSound: Initializing OpenAL Opened device WH-1000XM4 EFX enabled I_Init: Setting up machine state. CPU Vendor ID: GenuineIntel Name: 12th Gen Intel(R) Core(TM) i7-1260P Family 6, Model 154, Stepping 3 Features: SSE2 SSE3 SSSE3 SSE4.1 SSE4.2 AVX AVX2 F16C FMA3 BMI1 BMI2 HyperThreading V_Init: allocate screen. ST_Init: Init startup screen. Checking cmd-line parameters... S_InitData: Load sound definitions. G_ParseMapInfo: Load map definitions. Texman.Init: Init texture manager. ParseTeamInfo: Load team definitions. LoadActors: Load actor definitions. Script warning, "gzdoom.pk3:zscript/doombase.zs" line 125: Incorrect number of return values. Got 1, but expected 2 Script warning, "gzdoom.pk3:zscript/doombase.zs" line 129: Incorrect number of return values. Got 1, but expected 2 Script warning, "gzdoom.pk3:zscript/actors/inventory/stateprovider.zs" line 213: Incorrect number of return values. Got 1, but expected 2 Script warning, "gzdoom.pk3:zscript/actors/inventory/stateprovider.zs" line 223: Incorrect number of return values. Got 1, but expected 2 script parsing took 174.20 ms R_Init: Init Doom refresh subsystem. DecalLibrary: Load decals. M_Init: Init menus. P_Init: Init Playloop state. ParseSBarInfo: Loading custom status bar definition. D_CheckNetGame: Checking network game status. player 1 of 1 (1 nodes) Using video driver x11 Vulkan device: Intel(R) Graphics (ADL GT2) Vulkan device type: integrated gpu Vulkan version: 1.3.267 (api) 23.3.5 (driver) Max. texture size: 16384 Max. uniform buffer range: 1073741824 Min. uniform buffer offset alignment: 64 Resolution: 640 x 480 Could not find patch set /app/share/sounds/sf2/gzdoom.sf2.

Could not find patch set /usr/share/sounds/sf2/FluidR3_GS.sf2.

Could not find patch set /usr/share/sounds/sf2/FluidR3_GM.sf2.

Unable to create FluidSynth MIDI device. Falling back to System Default

Config saved. No bots.cfg, so no bots


E1M1 - Hangar

[==========================================================================================================================================================================================================.............]

Fatal Error !!! Failed to exec debug process Segmentation fault (core dumped)

XargonWan commented 7 months ago

Note: llvm16 now, we will update to llvm17 in the next version.

RicardoLuis0 commented 7 months ago

is this an actual 4.11.3 build? it seems to be generating errors from a fix to codegen.cpp without the corresponding changes to gzdoom.pk3, so i can only assume it's a hacked together build that's faking out the version number

XargonWan commented 7 months ago

is this an actual 4.11.3 build? it seems to be generating errors from a fix to codegen.cpp without the corresponding changes to gzdoom.pk3, so i can only assume it's a hacked together build that's faking out the version number

Sorry, I provided you a log that was about some experiments that I made, I updated gzdoom from the clean version available on flatpak shared modules and I updated the log, can you check now?

Thanks a lot

RicardoLuis0 commented 7 months ago

still the same thing, these errors shouldn't exist on a proper build:

Script warning, "gzdoom.pk3:zscript/doombase.zs" line 125:
Incorrect number of return values. Got 1, but expected 2
Script warning, "gzdoom.pk3:zscript/doombase.zs" line 129:
Incorrect number of return values. Got 1, but expected 2
Script warning, "gzdoom.pk3:zscript/actors/inventory/stateprovider.zs" line 213:
Incorrect number of return values. Got 1, but expected 2
Script warning, "gzdoom.pk3:zscript/actors/inventory/stateprovider.zs" line 223:
Incorrect number of return values. Got 1, but expected 2

that error check was added to codegen.cpp on the same commit that fixed it on gzdoom.pk3, so the fact that it shows at all for those two files is very sus (it's also worth noting that the flatpak for gzdoom isn't maintained by anyone on the dev team i'm pretty sure -- if they run on the deck, can you try one of the official linux releases (on www.zdoom.org/downloads) instead?)

XargonWan commented 7 months ago

I did some more tests, here the results:

In our manifest we are using the following runtimes, is there something not compatible with GZDoom?

runtime: org.kde.Platform
runtime-version: "6.5"
sdk: org.kde.Sdk
sdk-extensions:
  - org.freedesktop.Sdk.Extension.llvm16        # Needed for RPCS3 (llvm17 actually)
  - org.freedesktop.Sdk.Extension.rust-stable   # Needed for BoilR
RicardoLuis0 commented 7 months ago

do you have a stack trace from the portable release or from the latest commit?

XargonWan commented 7 months ago

do you have a stack trace from the portable release or from the latest commit?

Unfortunately not, now I put back the flathub's module (that seems to be updated) and the game is not even starting, before I could reach at least the menu (tested on my laptop):

gzdoom -config /var/config/gzdoom/gzdoom.ini -iwad /home/ubuntu/retrodeck/roms/doom/doom.wad
GZDoom g4.11.3-m - 2023-10-26 15:18:50 -0400 - SDL version
Compiled on Mar  8 2024

OS: KDE Flatpak runtime, Linux 6.5.0-21-generic on x86_64
GZDoom version g4.11.3-m
W_Init: Init WADfiles.
adding /var/data/gzdoom/gzdoom.pk3, 672 lumps
adding /home/ubuntu/retrodeck/roms/doom/Castlevania.ipk3, 2948 lumps
S_Init: Setting up sound.
I_InitSound: Initializing OpenAL
  Opened device Alder Lake PCH-P High Definition Audio Controller HDMI / DisplayPort 1 Output
  EFX enabled
No GENMIDI lump found. OPL playback not available.
I_Init: Setting up machine state.
CPU Vendor ID: GenuineIntel
  Name: 12th Gen Intel(R) Core(TM) i7-1260P
  Family 6, Model 154, Stepping 3
  Features: SSE2 SSE3 SSSE3 SSE4.1 SSE4.2 AVX AVX2 F16C FMA3 BMI1 BMI2 HyperThreading
V_Init: allocate screen.
ST_Init: Init startup screen.
Checking cmd-line parameters...
S_InitData: Load sound definitions.
G_ParseMapInfo: Load map definitions.
Texman.Init: Init texture manager.
ParseTeamInfo: Load team definitions.
LoadActors: Load actor definitions.
Script warning, "gzdoom.pk3:zscript/doombase.zs" line 125:
Incorrect number of return values. Got 1, but expected 2
Script warning, "gzdoom.pk3:zscript/doombase.zs" line 129:
Incorrect number of return values. Got 1, but expected 2
Script warning, "gzdoom.pk3:zscript/actors/inventory/stateprovider.zs" line 213:
Incorrect number of return values. Got 1, but expected 2
Script warning, "gzdoom.pk3:zscript/actors/inventory/stateprovider.zs" line 223:
Incorrect number of return values. Got 1, but expected 2
script parsing took 111.81 ms
R_Init: Init SimonDestiny refresh subsystem.
DecalLibrary: Load decals.
M_Init: Init menus.
P_Init: Init Playloop state.
ParseSBarInfo: Loading custom status bar definition.
D_CheckNetGame: Checking network game status.
player 1 of 1 (1 nodes)
Using video driver x11
Vulkan device: Intel(R) Graphics (ADL GT2)
Vulkan device type: integrated gpu
Vulkan version: 1.3.267 (api) 23.3.5 (driver)
Max. texture size: 16384
Max. uniform buffer range: 1073741824
Min. uniform buffer offset alignment: 64
Resolution: 640 x 480
No bots.cfg, so no bots

----------------------------------------

TITLEMAP - TITLEMAP

[=============================================================================================================================================================================================================..........]

*** Fatal Error ***
!!! Failed to exec debug process
Segmentation fault (core dumped)

This version is post the commint you mentioned before so it should bear the fix.

RicardoLuis0 commented 7 months ago

This version is post the commint you mentioned before so it should bear the fix.

the same commit both introduces the error check, and fixes it in gzdoom.pk3, and that build is missing the fix on gzdoom.pk3 as can be seen by the log:

Script warning, "gzdoom.pk3:zscript/doombase.zs" line 125:
Incorrect number of return values. Got 1, but expected 2
Script warning, "gzdoom.pk3:zscript/doombase.zs" line 129:
Incorrect number of return values. Got 1, but expected 2
Script warning, "gzdoom.pk3:zscript/actors/inventory/stateprovider.zs" line 213:
Incorrect number of return values. Got 1, but expected 2
Script warning, "gzdoom.pk3:zscript/actors/inventory/stateprovider.zs" line 223:
Incorrect number of return values. Got 1, but expected 2

either it has a partial commit, or it isn't including the right gzdoom.pk3

XargonWan commented 6 months ago

It seems like that the gzdoom.pk3 was an outdated one, thanks for the support.