Version 1.1.0
AMD FSR 2.2
Yes, AMD FSR 2.2 is now fully integrated into the DXX-Raytracer and supports 4 different upscaling modes (as well as no upscaling). This should especially help the lower end graphics cards, and I am very curious to see how the performance looks on those. Please note that our own TAA and AMD FSR 2.2 exclude each other (because they do similar work, except TAA does not do upscaling). So if you choose to use AMD FSR 2.2 with no upscaling selected, you might as well use our own TAA instead, since its cheaper and gives you very similar results. The upscaling modes follow the recommendations given by AMD:
No Upscaling: 1.0x - Output resolution is the same as the render resolution
Quality: 1.5x upscaling
Balanced: 1.7x upscaling
Performance: 2.0x upscaling
Ultra performance: 3.0x upscaling
Texture compression
I think some people with high-res texture packs will definitely like this one. Texture compression with DDS files is now supported, meaning that your GPU VRAM will not be eaten up as quickly as before. To use texture compression, simply convert your textures from PNG to DDS. The game will first try to load the DDS file, and will fall back to the PNG file if no DDS file was found.
NVIDIA driver related crash
In December 2023 we received the first report of this crash in our GitHub issues, but over time it turned out that way more people are affected by this than initially thought. The issue was fixed and NVIDIA users with latest drivers can enjoy the path tracing goodness once more.
DXR Inline Raytracing
This is more relevant to devs since the average end user won't even see any of this, but all of the raytracing shaders have been rewritten to use the DXR Inline Raytracing API instead of DispatchRays with its shader tables. Inline raytracing makes the raytracing process less error prone and is easier to debug. The code can still be built with DispatchRays and shader tables, but the build we ship from now on will use DXR Inline Raytracing instead.
Full changelist
Added AMD FSR 2.2
Added DXR Inline Raytracing
Added DDS texture compression (Credit to Jeffrey Adams for the original implementation)
Added a python script to convert PNGs to DDS files
Added VSync toggle to the raytracing options menu
Added Upscaling & AA setting to the raytracing options menu
Added FSR2 upscaling mode to the raytracing options menu
Added FSR2 reactive mask flag for materials that write into the FSR2 reactive mask to reduce artifacts*
Added FSR2 reactive mask debug render mode
Added support for output independent render resolution in the render backend
Added output & render resolution to the render settings debug menu
Added FPS & frame time to the render settings debug menu, which are averaged over one second
Added missing dxcompiler.dll and dxil.dll files to the repository (relevant for devs)
Added toggle for inline raytracing/dispatchrays in assets/shaders/include_shared/shared_common.hlsl.h (relevant for devs)
Changed maximum FOV from 90 to 120
Changed triple buffering to double buffering to reduce input lag if GPU bound
Changed hard cap for FPS from 200 to 999
Changed some of the raytracing option names to be easier to understand
Fixed crash related to newer NVIDIA drivers
Fixed normals and tangents on rotated texture overlays (Credit to Jeffrey Adams for fixing this)
Fixed level geometry sometimes being rotated incorrectly (Credit to kevin/klmcdorm for fixing this)
Removed the path tracing reference mode
To create DDS textures: Download NVIDIA's https://developer.nvidia.com/gpu-accelerated-texture-compression to compress the textures. We have prepared a script for you to convert a batch of textures for you to the correct format and settings. You can run the python script in a command line python PNGToDDS.py with a path to a directory to generate an nvtt file. That file can then be executed with nvtt_export --batch ".nvtt". That will generate DDS files for all PNG files in that directory that follow our naming conventions (_basecolor.png, _normal.png, _metallic.png, _roughness.png, and _emissive.png) and use the correct settings for each of these types. Make sure you generate DDS textures with mips.
*FSR2 reactive mask flag: Materials that are part of a texture animation or emit light should be marked with the new flag in the material editor, called FSR2 reactive mask. This is so that materials that do not write to the depth buffer or do not have motion vectors applied to them can be treated differently for the upscaling, reducing artifacts significantly. If you adjust the materials/textures, make sure that for these types of materials you use that flag.