0000640: Frozen status in GZDoom 3.0

Bugs that have been investigated and resolved somehow.

Moderator: GZDoom Developers

Forum rules
Please don't bump threads here if you have a problem - it will often be forgotten about if you do. Instead, make a new thread here.
Post Reply
User avatar
leodoom85
Posts: 684
Joined: Sun Sep 14, 2014 6:40 pm
Location: Earth-shaking Chile

0000640: Frozen status in GZDoom 3.0

Post by leodoom85 »

https://mantis.zdoom.org/view.php?id=640

Code: Select all

Summary	0000640: Frozen status in GZDoom 3.0
Description	Activating a switch with a Radius_Quake action in GZDoom 3.0 32-bit version, the game will froze everytime. Tested on the 20 Monsters Challenge megawad, maps 25 and 38.
Steps To Reproduce	-Drag and load this provided wad in GZDoom.
-Select the Doom 2 Iwad.
-Press the switch in front of you.
-The game will froze because of the Radius_Quake action.
Additional Information	-Use the 32-bit stable version of GZDoom 3.0.0
https://mantis.zdoom.org/file_download. ... 4&type=bug
User avatar
Enjay
 
 
Posts: 27290
Joined: Tue Jul 15, 2003 4:58 pm
Location: Scotland
Contact:

Re: 0000640: Frozen status in GZDoom 3.0

Post by Enjay »

I can get this too. It is just the 32 bit version though. The 64 bit version seems to work just fine.
User avatar
leodoom85
Posts: 684
Joined: Sun Sep 14, 2014 6:40 pm
Location: Earth-shaking Chile

Re: 0000640: Frozen status in GZDoom 3.0

Post by leodoom85 »

Also, any value for the intensity, radius and tremor, even at minimum, the game will freeze no matter what.
User avatar
YukiHerz
Global Moderator
Posts: 1503
Joined: Mon Dec 02, 2013 6:01 pm
Graphics Processor: Intel (Modern GZDoom)
Location: Where corruption is redefined daily.

Re: 0000640: Frozen status in GZDoom 3.0

Post by YukiHerz »

After some testing, I've come to the conclusion that the crash may be related to the sound played during quake effects, specifically their FLAC format, making the secret sound play by entering a secret sector or crossing a secret line also crashed the game for me, but it didn't when I added a custom DSSECRET via an external pk3, in WAV format.
_mental_
 
 
Posts: 3820
Joined: Sun Aug 07, 2011 4:32 am

Re: 0000640: Frozen status in GZDoom 3.0

Post by _mental_ »

Released 32-bit build crashes inside libsndfile-1.dll.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49252
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: 0000640: Frozen status in GZDoom 3.0

Post by Graf Zahl »

I'm off for the entire day so I cannot test myself right now.
Can you retest this with the DLL from the 2.4 release? That's an older one.
This probably needs to be reported to the libsndfile developer if it can be confirmed to be a library related error.
_mental_
 
 
Posts: 3820
Joined: Sun Aug 07, 2011 4:32 am

Re: 0000640: Frozen status in GZDoom 3.0

Post by _mental_ »

Fixed in 8a36bf5

Hard to say who is responsible for this fault, our code or libsndfile.
If SSE optimization was explicitly enabled during compilation of DLL, I guess we need to do proper buffer alignment.

In any case, it was quite easy to fix on our side.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49252
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: 0000640: Frozen status in GZDoom 3.0

Post by Graf Zahl »

Such a requirement should never be made part of an ABI.
_mental_
 
 
Posts: 3820
Joined: Sun Aug 07, 2011 4:32 am

Re: 0000640: Frozen status in GZDoom 3.0

Post by _mental_ »

Even after my fix I've got the same unaligned access in Debug Win32 build.
Apparently something is really wrong with libsndfile.

UPDATE: I built libsndfile from master branch using MSVC. Release DLL works fine with all GZDoom configurations. Most likely 1.0.28 was compiled with MinGW which is guilty of breaking alignment in stack.

The question is how do we proceed with libsndfile for minor release?
_mental_
 
 
Posts: 3820
Joined: Sun Aug 07, 2011 4:32 am

Re: 0000640: Frozen status in GZDoom 3.0

Post by _mental_ »

After some thinking about this issue I came with conclusion that the best way to solve it is to rebuild all dependencies with MSVC.
I can do this myself if needed.
Alternatively, I can create Git repository with source code of all libraries we are using with configured VS projects/solutions and batch file to build them all.
User avatar
Rachael
Posts: 13966
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her
Contact:

Re: 0000640: Frozen status in GZDoom 3.0

Post by Rachael »

Both solutions sound good to me - so it's whatever you think is best.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49252
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: 0000640: Frozen status in GZDoom 3.0

Post by Graf Zahl »

_mental_ wrote: The question is how do we proceed with libsndfile for minor release?

If the library is the source of the problem it needs to be replaced. I also think the bug needs to be reported to its creator, this is a serious issue that could render it worthless.
For the time being I am putting back the old version into the binary distribution.

The main question is: Does this work for 64 bit due to the far stricter stack alignment requirements or just by random luck?
_mental_
 
 
Posts: 3820
Joined: Sun Aug 07, 2011 4:32 am

Re: 0000640: Frozen status in GZDoom 3.0

Post by _mental_ »

I doubt that the problem is with the library itself rather than with a compiler was used to buil it.
Like I said there is no issue with DLL I built with MSVC.

To report a bug some minimal sample is needed, we can't just say: build GZDoom with VS2015 in Release.
_mental_
 
 
Posts: 3820
Joined: Sun Aug 07, 2011 4:32 am

Re: 0000640: Frozen status in GZDoom 3.0

Post by _mental_ »

Reported the issue to libsndfile developers here.
Post Reply

Return to “Closed Bugs [GZDoom]”