No description
Find a file
Conn O'Griofa 457dc8b5a9 Use signal handler to invoke call_terms() before exit when possible
It's not advisable to rely on atexit() to invoke SDL_Quit(), as it
causes a segmentation fault on exit for the SDL2 KMSDRM driver due to
a conflict with the Mesa drivers* which upstream Mesa may not elect to fix.

The issue can be resolved by replacing the atexit() call with a signal
handler that will interrupt the D_DoomMain() and D_DoomLoop()
functions, then invoke call_terms() within the main thread before exiting.

We can leave the atexit() hook intact to handle edge cases such as abnormal
process exit, or exit methods which do not produce signals such as Alt+F4 or
window close via GUI (neither of which are possible in a KMS context, so
should not affect KMSDRM sessions).

Fixes a segmentation fault/uninterruptible application hang on exit
for all KMS targets, including Raspberry Pi 4B, 3B and Intel i965.

* See: https://bugzilla.libsdl.org/show_bug.cgi?id=4530 and
https://lists.freedesktop.org/archives/mesa-users/2019-March/001519.html
2019-09-12 23:34:17 +02:00
asmjit AsmJit update 2019-08-20 13:08:18 +02:00
bzip2 - updated bzip2 to version 1.0.8 2019-07-29 18:54:25 +02:00
cmake Do not write g_pch.cpp if it's already up-to-date 2018-05-09 21:51:53 +02:00
docs - changed license of portal.cpp to GPLv3 2019-08-26 00:38:13 +02:00
dumb - made DUMB library always static 2019-05-12 20:23:04 +02:00
fm_banks Upgrade libADLMIDI and libOPNMIDI 2018-10-04 20:25:02 +02:00
game-music-emu GME update with bug-fixes 2019-08-26 00:51:45 +02:00
gdtoa Force STATIC for internal GZDoom libraries 2019-05-18 22:49:07 +02:00
jpeg Force STATIC for internal GZDoom libraries 2019-05-18 22:49:07 +02:00
lzma Force STATIC for internal GZDoom libraries 2019-05-18 22:49:07 +02:00
soundfont - added a small default sound font that needs to be installed with the project. 2017-05-13 12:38:19 +02:00
specs Expand UDMF and ZScript API for side's own additive colors 2019-06-23 14:11:08 +02:00
src Use signal handler to invoke call_terms() before exit when possible 2019-09-12 23:34:17 +02:00
tools - fixed a warning caused by the LZMA-SDK update. 2018-01-21 10:58:12 +01:00
wadsrc Squashed commit of the following: 2019-09-11 14:18:28 +02:00
wadsrc_bm - changed the filter name for Doom IWADs 2019-05-01 01:01:35 +02:00
wadsrc_extra - allow the language table to supersede the title patches, if appropriate 2019-08-06 17:13:21 +02:00
wadsrc_lights - dynamic light definitions for Hacx. 2019-07-18 13:51:33 +02:00
zlib Force STATIC for internal GZDoom libraries 2019-05-18 22:49:07 +02:00
.appveyor.yml - Fixed and updated Appveyor configuration. 2019-09-01 11:35:53 +02:00
.gitattributes - define zdoom.rc as a proper Windows text file, stop Git from mismanaging it 2018-05-18 14:01:48 +02:00
.gitignore AsmJit update 2019-08-20 13:08:18 +02:00
.travis.yml - use Xcode 10.3 for "up-to-date" Travis target 2019-08-17 13:29:35 +02:00
CMakeLists.txt Inclusion of check symbol cmake's module. 2019-06-02 22:00:42 +02:00
ico_lzdoom.png - Added new great icons by Tormentor667. 2019-05-30 00:05:02 +02:00
logo.png - Added new great icons by Tormentor667. 2019-05-30 00:05:02 +02:00
README.md - Updated README.md. 2019-05-08 21:40:40 +02:00

Welcome to LZDoom!

Build Status Build Status

LZDoom is a fork of GZDoom 3.3 compiling with MinGW and running on older non SSE2 cpus while keeping the DDRAW and D3D backends for compatibility.

Copyright (c) 1998-2019 ZDoom + GZDoom teams, and contributors

Doom Source (c) 1997 id Software, Raven Software, and contributors

Please see license files for individual contributor licenses

Special thanks to Coraline of the 3DGE team for allowing us to use her README.md as a template for this one.

Licensed under the GPL v3

https://www.gnu.org/licenses/quick-guide-gplv3.en.html

How to build GZDoom

To build GZDoom, please see the wiki and see the "Programmer's Corner" on the bottom-right corner of the page to build for your platform.

GZDoom repo: https://github.com/coelckers/gzdoom

Other forks/branches