Description

A typo in a conditional compilation macro in NaniteRasterizer.usf causes code controlling distant tessellation reduction to never be included in final shader code. This means that the low tessellation mode (tessellation factor reduced to 25%), which should active at a distance, can never activate.

The offending code in NaniteRasterizer.usf is the following:
#if USE_DISPLACEMENT
LowTessDistance = CalcDisplacementLowTessDistance(PrimitiveData, Patches_InstanceData, NaniteView);
#endif

Note that the USE_DISPLACEMENT macro is not defined anywhere, so the contained code can never be compiled or executed. This should instead be USES_DISPLACEMENT.

Steps to Reproduce
  • Open the engine code
  • Open NaniteRasterizer.usf
  • Go to line 831
  • Check the #if statement
  • what you get:
    #if USE_DISPLACEMENT
  • expected:
    #if USES_DISPLACEMENT

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-353634 in the post.

0
Login to Vote

Unresolved
ComponentUE - Graphics Features - Nanite
Affects Versions5.55.65.75.8
CreatedNov 12, 2025
UpdatedNov 13, 2025
View Jira Issue