Hi everyone,
I’m trying to optimize a large open-world forest in UE 5.5, and I’m running into a very strange issue with ShadowDepths.
Project
- UE 5.5
- Deferred Renderer
- Nanite foliage(it was non-nanite before, but optimization was more bad than this. so i made trees nanite.)
- Classic Shadow Maps (NOT Virtual Shadow Maps)
- Dynamic directional light
- World Partition
The issue
stat gpu reports:
- Total GPU: ~30 ms
- ShadowDepths: 10-10.5 ms
However, after a lot of testing I found some strange results.
Things I’ve already tested
- Dynamic Shadow Distance = 0
- Num Dynamic Cascades = 1
- Distance Field Shadows = Disabled
- Virtual Shadow Maps = Disabled
- Far Shadow Cascade Count = 0/1 (tested)
- RadiusThreshold tested with multiple values
- Nanite enabled
- MaxPixelsPerEdge optimized
If I disable all trees, ShadowDepths only drops from:
10.5 ms → ~6.5 ms
So even with almost no shadow casters in the scene, ShadowDepths is still around 6.5 ms.
If I completely disable shadows using:
r.ShadowQuality 0
(or equivalent show flags)
the ShadowDepths pass disappears as expected.
What I’m trying to understand
What exactly is included inside the ShadowDepths pass?
What could still be rendering into shadow depth maps when:
- Dynamic Shadow Distance = 0
- Only 1 cascade
- Distance Field Shadows disabled
- Almost all foliage removed
Is there another shadow pass or hidden shadow caster that stat gpu reports under ShadowDepths?
Has anyone experienced something similar?
Any ideas would be greatly appreciated.
Thanks!