GZDoom 4.7.0 released

News about ZDoom, its child ports, or any closely related projects.
[ZDoom Home] [Documentation (Wiki)] [Official News] [Downloads] [Discord]
[🔎 Google This Site]

Moderator: GZDoom Developers

User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49184
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

GZDoom 4.7.0 released

Post by Graf Zahl »

The major new addition is a new GLES2 backend, meant to improve performance on low end hardware. This was written by emile_b for the Android port but backported to the mainline for old hardware support.
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.
User avatar
Enjay
 
 
Posts: 26574
Joined: Tue Jul 15, 2003 4:58 pm
Location: Scotland

Re: GZDoom 4.7.0 released

Post by Enjay »

Thank you kindly. As ever, an impressive list of fixes and features.
User avatar
camaxide
Posts: 386
Joined: Thu Jun 11, 2015 8:38 am

Re: GZDoom 4.7.0 released

Post by camaxide »

use explicit virtual screen sizes for the scripted intermission backgrounds to better cope with background replacements.

Does this mean the markers like ‘you are here’ can now be placed with xy values matching the background image resolution? How about scale? Will it autoscale, or is there any code for scaling these? In oldschool version it auto-scaled, but recent versions would make tiny markers on for instance a 4K background.
User avatar
ClessxAlghazanth
Posts: 159
Joined: Sun Feb 17, 2019 9:29 am

Re: GZDoom 4.7.0 released

Post by ClessxAlghazanth »

Congrats on the new release ! Just given it a few quick runs , and everything seems to work great so far :D (using gles 2.0 renderer)

Also attended the survey 8-)

(I answered 'yes' to the question about the survey at startup , is it enough or should I do anything further ?)

Much thanks to everyone involved in the project :P
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49184
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: GZDoom 4.7.0 released

Post by Graf Zahl »

camaxide wrote:use explicit virtual screen sizes for the scripted intermission backgrounds to better cope with background replacements.

Does this mean the markers like ‘you are here’ can now be placed with xy values matching the background image resolution? How about scale? Will it autoscale, or is there any code for scaling these? In oldschool version it auto-scaled, but recent versions would make tiny markers on for instance a 4K background.

It means you can specify the size of the coordinate grid you want to place these on. So far it used the actual size of the background image for that but it turned out that some mods need more control.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49184
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: GZDoom 4.7.0 released

Post by Graf Zahl »

ClessxAlghazanth wrote: (I answered 'yes' to the question about the survey at startup , is it enough or should I do anything further ?)
No, that should be enough.
User avatar
Enjay
 
 
Posts: 26574
Joined: Tue Jul 15, 2003 4:58 pm
Location: Scotland

Re: GZDoom 4.7.0 released

Post by Enjay »

On the survey (which I have no problem with, and have already allowed) what happens with a stand-alone game that comes bundled with GZDoom 4.7.0? will it also ask the survey question?
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49184
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: GZDoom 4.7.0 released

Post by Graf Zahl »

No standalone game should bundle an unmodified GZDoom executable. Yes, if someone did, it'd show the survey, too. If someone needs one without the survey code I'd happily provide it to them, though.
AvzinElkein
Posts: 625
Joined: Wed Nov 17, 2010 6:35 pm

Re: GZDoom 4.7.0 released

Post by AvzinElkein »

Cool; I'm just gonna wait for the Linux distro.
User avatar
Enjay
 
 
Posts: 26574
Joined: Tue Jul 15, 2003 4:58 pm
Location: Scotland

Re: GZDoom 4.7.0 released

Post by Enjay »

Graf Zahl wrote:No standalone game should bundle an unmodified GZDoom executable. Yes, if someone did, it'd show the survey, too. If someone needs one without the survey code I'd happily provide it to them, though.
Thanks for the answer. It was really just a "what if" question but it popped into my head so I thought I'd ask.
User avatar
Nash
 
 
Posts: 17465
Joined: Mon Oct 27, 2003 12:07 am
Location: Kuala Lumpur, Malaysia

Re: GZDoom 4.7.0 released

Post by Nash »

Anyone who is developing something significant enough to bundle an executable, would most likely know how to disable the survey themselves, anyway.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49184
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Re: GZDoom 4.7.0 released

Post by Graf Zahl »

BTW, here's something interesting: Of all the 34 reports so far, not a single one is for hardware not capable of Vulkan, and the only one for 32 bit was my own test call...
User avatar
Major Cooke
Posts: 8196
Joined: Sun Jan 28, 2007 3:55 pm
Preferred Pronouns: He/Him
Location: QZDoom Maintenance Team

Re: GZDoom 4.7.0 released

Post by Major Cooke »

Service class was also extended.
user19284
Posts: 45
Joined: Tue Oct 25, 2016 5:01 am

Re: GZDoom 4.7.0 released

Post by user19284 »

Thank you for updating and keeping up with latest technology features for GZDoom!! :D :D :D
Cacodemon345
Posts: 422
Joined: Fri Dec 22, 2017 1:53 am
Graphics Processor: ATI/AMD (Modern GZDoom)

Re: GZDoom 4.7.0 released

Post by Cacodemon345 »

For anyone on Linux using a Wayland compositor, you can now type commands on the console when SDL2 is using the Wayland backend.

Return to “ZDoom (and related) News”