Quick answer: Unreal Engine 5 VSM page cache thrashing in 20km landscapes? Default page pool is sized for indoor scenes - raise r.Shadow.Virtual.MaxPhysicalPages and tune r.Shadow.Virtual.ResolutionLodBiasDirectional.
Camera pans across an open landscape. Shadows pop in column-by-column as the VSM page allocator evicts and reloads.
Raise the page pool
r.Shadow.Virtual.MaxPhysicalPages 8192Default 4096 is tuned for ~1km playspaces. Open-world projects need 2x or 4x. Pages are 128x128, so 8192 ~= 128MB VRAM at 32bpp.
Bias resolution by distance
r.Shadow.Virtual.ResolutionLodBiasDirectional 1.0 drops shadow resolution at distance. You save pages where they're least visible.
Profile with the visualizer
r.Shadow.Virtual.Visualize 1. Red = evicted last frame, green = fresh. Persistent red across the screen means you're undersized.
“Virtual Shadow Maps are a budget - sized for a kitchen, not a savanna.”
Combine with r.Shadow.Virtual.UseFarShadowCulling 1 for vista-only scenes. You give up shadow precision on distant geometry that won't be inspected anyway.