Please note that this backend removes some non-essential features to increase performance, like the entire postprocessing or advanced lighting features like specular or PBR.
Our tests show no performance gains on modern hardware capable of Vulkan, so is not recommended to run it on such systems - it is solely meant for old hardware that have performance issues with the modern GL backend.
On older hardware capable of supporting OpenGL 3.3 our measurements show that performance is generally on par with LZDoom.
Furthermore, to make the new backend available to 32 bit users as well, GZDoom 4.7 will exceptionally provide a 32 bit build as well, but please be aware that it depends on the survey's result whether this will see continued maintenance, as user share was already extremely low two years ago.
The survey has been re-enabled for this version so that we can get some information about how the state of systems being used for GZDoom has developed over the last two year. This is mainly due to the addition of the new GLES backend for old hardware, so we can get an overview of how much of this hardware still exists and how future support needs to be handled. We would like to ask as many users as possible to participate, so that we can make the right decisions based on the information we obtain. Like previous surveys this does not collect any private information - all it sends is basic info about the operating system, the number of CPU cores, the name of the graphics card and supported OpenGL/Vulkan versions.
Notice: The survey is currently OPEN. GZDoom 4.7.0 contains survey code. You may OPT IN or OPT OUT when starting this software.
Please do not post bugs or issues in release threads! Click here
Download (OpenGLES 2.0 and higher for hardware rendering, Direct3D 9 or later for software rendering) Highlights:
- Widescreen graphics for Strife
- new GLES backend for better performance on OpenGL 3.3 and early 4.x hardware.
- MBF21 support (still in beta and not fully tested yet, bug reports are welcome)
- DEHEXTRA working properly now
- various enhancements and fixes for ZScript.
Details
- fixed vertex generation when splitting walls by planes on old hardware.
- menu system update from Raze for better control of animated menus.
- GLES fixed: The weapon sprite must be rendered with the fullscreen colormap on.
- use explicit virtual screen sizes for the scripted intermission backgrounds to better cope with background replacements.
- fix compatibility handler for KDiZD's Z1M3.
- fixed: "Dialogue" in MAPINFO must clear all "AddDialogues" that came before.
- fixed melee attack disance being off after adding MBF21 support.
- fixed: Decal things did not spawn their lower decals.
- fixed texture clamping for elements that are partially behind a slope.
- fixed bad parameter order in MinoraurSlam.
- Consider 'Program Files' a read only location without actually checking.
- fixed: 3D floor model sectors were not added to the sector lists for precise rendering.
- removed the redundant gl_render_precise CVAR.
- fixed: colors from brightmaps and glowmaps need to be desaturated.
- fixed: shaders with NO_LAYERS defined may not apply brightmap and glowmap.
- Vulkan: Limit texture upload transfer buffers to roughly 64 MB
- marked several invisible controller things to not show on the automap with the scanner powerup.
- treat 'vid_adapter 0' as what Windows considers the primary monitor.
- fixed: Brightmap application for horizons was undefined..
- replaces "BS" and "ED" on the on-screen keyboards with the symbols normally found on the keyboard for these actions.
- enable cvar blacklisting for defcvars for certain platform variables
- demote unknown/invalid defcvars to warnings
- split defcvars parser into its own file
- fix options search when menus are defined recursively
- exported STAYONLIFT flag.
- added a modified version of MBF's stay-on-lift feature.
- fixed crash on getting location description without a level
- block user overrides for the logic module of core fragment shaders.
- added missing MBF21 Dehacked keys "blood color" and "dropped item".
- implemented MBF's monsters_avoid_hazards feature.
- added a map flag to disable MF6_JUMPDOWN.
- added a per-level AVOIDMELEE flag.
- allow passing a remap table to BestColor.
- hud models: add nullptr check for psprites without caller.
- removed the unused palette parameter from the V_GetColor family of functions.
- Add FOV slider to the display options menu
- added a null check to CheckWeaponChange.
- replaced the alt HUD's index font with a sheet based variant.
- changed FString API to use ptrdiff_t instead of long for signed size arguments.
- Fixed IsHUDModelForPlayerAvailable limitation.
- Look up HUD models by referencing the psprite's caller, rather than player's ReadyWeapon.
- Allow Strife hands psprite to be a model.
- fixed: crushing stairs must use HexenCrush mode.
- extended 2D buffer lifetime to the end of the frame
- use RefCountedPtr to manage 2D shape buffer infos
- added RefCountedBase without virtual destructor
- made RefCountedPtr follow rule of five
- make RenderCommands able to use Shape2D vertex buffers past the Shape2D's lifetime without crashing
- fixed line color handling in V_BreakLines.
- run the dynamic light recreation loop before calling the light ticker.
- fixed: instead of checking gl_lights, better check Level->HasDynamicLights.
- do not run the dynamic light ticker when lights are switched off.
- ensure that shadowmap indices only get set when shadowmaps are enabled.
- fixed file system's zip loader to not strip away a 'filter/' prefix.
- do not perform shadowmap updates when dynamic lights are disabled.
- moved the CheckForRestart call one level up so that it is within the Windows code and does not need #ifdefs.
- delay the restart action from the error pane until after everything has been shut down.
- use proper XMove for sheet fonts.
- use original menu spacing for skill and episode menus if all elements are patches.
- fixed: the software scene drawer must be deleted before calling ST_Endoom.
- reorder evaluation for 'if' statements to handle the condition first. Otherwise this won't emit errors if a bad condition is used with an empty conditional part.
- fixed exploding barrel animation duration.
- fixed two vr_* CVARs not getting archived.
- dim depleted inventory items in all games, not just Strife.
- fixed: palette index 0 (transparent) was left uninitialized for BMF fonts.
- fixed: P_RoughMonsterSearch did not pass the fov parameter to its worker functions.
- fixed BlockThingsIterator to not reset its list of processed actors when traversing portals.
- fixed patch version in compatibility implementation of macOS detection
- destroy stale thinkers after change level failure
- fixed crash after change level failure
- SDL2: Properly print white bold text to the screen
- merged gzdoom-gles2 backend
- use proper music check in 'idmus' CCMD.
- voc loader fix.
- better prefix detection in Zip loader.
- SDL Vulkan init.
- disabling of shadowmap management when the feature is off.
- Extend the changemap command to allow warping to next or nextsecret.
- fixed crash after fatal error in SDL backend
- fixed premature destruction of status bar
- fixed EBlastFlags enum definition
- Add 'BF_ONLYVISIBLETHINGS' Flag to A_Blast
- Fixed typo in Heretic light definition.
- Fix wrong thiswad check for materials too.
- fix /0 error caused by having a completely black font character. this error was triggered by Return of the Triad.
- MBF21 beta implementation
- corrected the NUL checks in S_FindSkinnedSound.
- moved Doom specific font init code out of the backend.
- Fixed crash calling ChangeSky() with an invalid texture.
- added APROP_Soundclass
- added fallback to the parenthesis glyphs for the braces.
- font system overhaul.
- Add some new optional parameters to A_SprayDecal.