Epic’s Unreal Engine has traditionally favored NVIDIA hardware, often leading to less than satisfactory performance on Radeon graphics cards. Although the game engine has no Gameworks technologies enabled by default, the utilization is generally better on the former which is likely the result of better scheduling-level optimizations for GeForce hardware. With the launch of the RDNA-based Navi graphics cards, AMD’s hardware is quite similar to NVIDIA in terms of dispatch/workgroup length which has generally improved frame rates across the board, but there’s still a notable deficit between the two in most titles using Unreal Engine 4.
With the newly announced Unreal Engine 5 and the “Valley of the Ancients” demo, however, it appears that AMD cards have not only caught up but are also faster than their latest GeForce rivals. Testing conducted by Digital Foundry shows that the Radeon RX 6800 XT is up to 12% faster than the GeForce RTX 3080 at the 1080p Epic setting with
FSR TSR (Temporal Super Resolution) upscaling to 4K. It’s possible that this is due to TSR being the result of an Epic-AMD partnership but it’s hard to tell for sure just yet.
Interestingly, Unreal Engine 5 depreciates traditional hardware-level ray-tracing to a legacy feature, using its in-house Lumen lighting technology for global illumination and diffuse lighting. Although Lumen does have support for hardware-acceleration of ray-traced lighting, it uses a software-based solution by default which is what we assume is being used in this demo.
Lumen has two methods of ray tracing in Unreal Engine 5: Software Ray Tracing which operates on the widest range of hardware and platforms and Hardware Ray Tracing which requires supported video cards and systems to operate.
Lumen uses Software Ray Tracing against Signed Distance Fields (ray-marching) by default. This tracing representation is supported on any hardware supporting Shader Model 5 (SM5), and only requires Generate Mesh Distance Fields to be enabled in the project settings.
The renderer merges Mesh Distance Fields into a Global Distance Field to accelerate tracing. By default, Lumen traces against each mesh’s Distance Fields for the first two meters for accuracy, and the merged Global Distance Field for the rest of each ray. Projects with extreme overlapping instances can control the method Lumen uses with Software Ray Tracing Mode in the project settings.
With that said, the documentation does admit that software-based ray-tracing comes with its own set of drawbacks, the most notable being that it only works with static meshes such as walls, buildings, stationary vehicles, and other objects that don’t exhibit motion. It can’t be used with skinned meshes either, including NPCs, wildlife, and other creatures that have a skeletal or skinned mesh. Furthermore, transparent materials are ignored by Distance Fields and treat Masked materials as opaque. This can cause significant over-shadowing on foliage, which has large areas of leaves masked out.