What's new in TDM 2.09
See the roadmap on our bugtracker.
The Dark Mod 2.09 Performance Update
TDM 2.09 marks a new phase of performance improvements aimed lowering CPU overhead in rendering.
A new OpenGL 3.3 backend that uses bindless textures, multi-draw, UBO streaming, and persistence mapping should significantly reduce
CPU demands bringing TDM a little closer to Vulkan performance per the "Approaching Zero Driver Overhead" (AZDO) design philosophy.
The work started in 2.08 to port Doom 3 BFG CPU jobs for multi-core acceleration to the frontend is nearly complete.
A new Sharpening Filter has been added which enhances the appearance of existing TDM textures
and also allows you to lower your Render Scale without producing a blurry render
The particle rendering system has been refactored to be more organized and mathematically correct.
The redesign should be easier to adapt for moving all particle rendering to the GPU if needed.
New particle setup features for weather effects like rain and snow have been added.
A new automation system allows mappers to connect TDM to Darkradiant and see real-time in-engine previews of their map
Important CVARS
- r_useNewBackend: --- which rendering backend to use. Default value of 1 means using the new one. In case of graphical issues, it might be worth trying to set it to 0 to check if issue goes away.
- r_useMultiDrawIndirect: --- allow the backend to feed draw calls to the driver from multiple cores at the same time
- r_useBindlessTextures: --- reduce driver CPU usage by allowing the GPU to keep track of textures associated to shaders ( reduce GL context creation )
- r_gpuBufferNonpersistentUpdateMode: --- Primarily for Intel GPU's. Improves rendering performance for persistent mapped buffers.
- r_shadowMapSinglePass: --- experimental optimization for shadow maps only.By default it is 0 (disabled), it can be enabled to 1 (generate many shadow maps at once)
- and 2 (compute interactions from many light at once).
- r_useParallelAddModels: --- controls new acceleration for rendering frontend (Multi-Core Doom 3 BFG job based threading).
- Can be changed in Experimental graphics menu under name "Frontend Acceleration". Much more stable in 2.09
- jobs_numThreads: --- meant to be paired with r_useParallelAddModels. Controls how many CPU cores can be assigned jobs ( default 2 )
Graphics
- Required OpenGL version raised to GL 3.3. This version is supposed to be final for the nearest years. ARB shaders removed completely. Some further cleanup done.
- The rendering now works on the "new backend" by default, and the old backend is marked for removal in future. The new backend is not only a major refactoring of OpenGL-related code,
but also a strong movement towards minimizing driver overhead. It includes improvements like: UBO streaming, bindless textures, multidrawindirect commands, lightgem triple buffering.
- The additional color correction that got included into 2.08 has been disabled. Also gamma/brightness settings now affect everything, including: underwater, GUIs, menu, etc.
As the result, the gamma/brightness behavior of TDM 2.07 is fully restored.
- RGTC texture compression is now used by default for normal maps. The plan is to convert existing normal maps to DDS files with RGTC compression in future (to reduce load times).
For now compression is done during level load.
- The well-known cvar com_smp aka "Multi Core Enhancement" optimization has become stable enough to be enabled by default and to be removed from the settings menu.
Its place in experimental settings is now taken by the new parallel optimization: cvar r_useParallelAddModels aka "Frontend Acceleration". Needless to say, this mode has got a major overhaul and numerous fixes.
- Added sharpening filter, which is applied to the final rendered image and improves its look.
It is enabled by default, controlled by "Sharpen Image" setting in the menu.
- Fixed "borderless" fullscreen mode (Windows-only). Ironically, it was broken in 2.08 release and worked exactly the same as ordinary fullscreen mode.
Now it should hopefully work as intended.
Mapping
- First implementation of "hot reload" feature: updating new map changes without restarting game.
It is also integrated into DarkRadiant (with the help of DarkRadiant devs 😃, of course). Here is the wiki page about it (beware: it is quite technical 😥).
- Finally, the rotation hack is totally removed from any map when player loads it. For any entity, bad rotation is embedded into its model.
Internally, the transformed model is saved on player's machine as "proxy model"
- Particle systems were greatly refactored, fixing the issue with bounding box.
Added "mapLayout linear" mode to particle static collisions, which allows snow or fire to stop at objects. See also wiki page about particle collisions.
Sound
Coding
Assets
GUIs
Gameplay
See also
- What's new in TDM 2.11 (Older releases: What's new in TDM 2.10, What's new in TDM 2.09, v2.08, v2.07, v2.06, v2.05, v2.04, v2.03, v2.02, v2.01, v2.00, v1.08, v1.07, v1.06, v1.05, v1.04, v1.03, v1.02, v1.01)
- Download TDM