← Back to Tutorials
Intermediate~12 min referenceUE 5.5 / 5.6

CVar Reference with Measured Impact

UE5 has thousands of CVars. About thirty actually move milliseconds when you flip them. This is that thirty — with default values, recommended-tier overrides, and measured impact from cited sources (AMD GPUOpen RX 7900 XTX measurements, Tom Looman's 5.5/5.6 highlights, Epic docs). Numbers are anchored to specific hardware/scenes; they are candidates to investigate on your project, not universal recommendations. Verify on your hardware.

Hardware-specific numbers AMD's measurements are RDNA 3 (RX 7900 XTX, 4K). NVIDIA RTX 40 generally shows the opposite slope on r.Lumen.HardwareRayTracing — HW is faster on RTX. Always re-measure before blanket-flipping.

Top 30 Impact CVars

#CVarDefaultRecommended (Low/Med/High)Measured ImpactSource
1r.Lumen.HardwareRayTracing10 / 0 / 1 (AMD); 1 (NVIDIA RTX)~1.2 ms saved on RX 7900 XTXGPUOpen UE Perf Guide
2r.Lumen.ScreenProbeGather.StochasticInterpolation01 / 1 / 1~30% screen probe gather speedupGPUOpen UE Perf Guide
3r.Lumen.ScreenProbeGather.IntegrateDownsampleFactor12 / 2 / 1~3× faster integrate; 0.3–0.5 ms at 1080p console (5.6)Tom Looman 5.6
4r.LumenScene.FarField.OcclusionOnly01 / 1 / 0~50% Far Field speedup on console (5.6)Tom Looman 5.6
5r.Lumen.ScreenProbeGather.MaxRayIntensity10 (5.6); was 4010 / 10 / 10More aggressive firefly clamp; reduces noisy varianceTom Looman 5.6
6r.Lumen.HardwareRayTracing.ShaderExecutionReordering00 / 1 / 120–30% Lumen reflections on RTX 40 (CitySample)NVIDIA SER blog
7r.Lumen.Reflections.RadianceCache01 / 1 / 0Reflection dispatch saving on RDNA 3GPUOpen UE Perf Guide
8r.Lumen.ScreenProbeGather.SpatialFilterNumPasses31 / 2 / 3Linear cost reduction per pass droppedGPUOpen UE Perf Guide
9r.Nanite.RasterSortvaries1 / 1 / 1Nanite raster sorting (5.5+)Tom Looman 5.5
10r.Nanite.MinPixelsPerEdgeHW1632 / 32 / 32HW vs SW raster crossover (RDNA 3)GPUOpen UE Perf Guide
11r.Nanite.StaticGeometryInstanceCull01 / 1 / 1~100 µs saved in CitySample (5.6 chunk culling)Tom Looman 5.6
12r.Nanite.Streaming.StreamingPoolSize512 MB384 / 512 / 1024Adjustable runtime in 5.5; cuts hitches on large worldsTom Looman 5.5
13r.Nanite.AllowWorkGraphMaterials00 / 0 / 1Work-graph material path on D3D12 (5.5)Tom Looman 5.5
14r.Shadow.Virtual.UseReceiverMaskDirectional01 / 1 / 1Static pages stay cached, dynamic pages mask-driven (5.6)Tom Looman 5.6
15r.Shadow.Virtual.Clipmap.CullDynamicTightly11 / 1 / 1Tighter far-cull plane reduces VSM-rendered geometry (5.6)Tom Looman 5.6
16r.Shadow.Virtual.SMRT.SamplesPerRayLocal84 / 6 / 7Visible frame-time gain, "nearly imperceptible" quality lossGPUOpen UE Perf Guide
17r.Shadow.Virtual.SMRT.SamplesPerRayDirectional84 / 6 / 7Linear cost reduction with sample countGPUOpen UE Perf Guide
18r.Shadow.RadiusThreshold0.010.06 / 0.04 / 0.01Mobile defaults 0.06; culls small castersCVar wiki
19r.Shadow.MaxResolution2048512 / 1024 / 2048Halving cuts shadow depth-pass cost ~4× per cascadeCVar wiki
20r.TSR.AsyncCompute11 / 2 / 2TSR moved to async compute on RDNA 3; overlaps GPU workGPUOpen UE Perf Guide
21r.TSR.History.ScreenPercentage200 (Epic AA)100 / 100 / 200Up to 1.2 ms saved at 4K on 7900 XTXGPUOpen UE Perf Guide
22r.TSR.ThinGeometryDetection00 / 1 / 1Improves temporal stability for foliage/hair (5.6)Tom Looman 5.6
23r.PSOPrecaching01 / 1 / 1Eliminates first-frame compile hitch (UE 5.2+)Epic Docs
24r.PSOPrecache.ProxyCreationWhenPSOReady11 / 1 / 1Defers proxy until PSO ready — pop instead of hitchEpic Docs
25r.Streaming.PoolSize-1 (engine-managed)400 / 800 / 1000+ MBMobile 85 MB; undersize triggers blurry textures, oversize wastes VRAMCVar wiki
26r.VT.PageFreeThreshold15 (5.6); was 6015 / 15 / 15Reduces VT pool residency under camera motion (5.6)Tom Looman 5.6
27r.MegaLights.DownsampleFactor12 / 2 / 12× downsample roughly halves MegaLights cost (5.6)Tom Looman 5.6
28tick.AllowBatchedTicks01 / 1 / 1Cuts TaskGraph overhead by batching same-class ticks (5.5)Tom Looman 5.5
29s.UseUnifiedTimeBudgetForStreaming01 / 1 / 1Shares budget between async-loading and level-streaming (5.6)Tom Looman 5.6
30gc.TimeBetweenPurgingPendingKillObjects6090 / 60 / 30Extending interval cuts GT GC spikes; shortening helps churn-heavy gameplayCVar wiki

Categories at a Glance

5.5 / 5.6 Changed Defaults to Audit on Upgrade

CVarPre-5.55.6 defaultWhy audit
r.Lumen.ScreenProbeGather.MaxRayIntensity4010Tighter firefly clamp; brightness/highlight changes silently
r.VT.PageFreeThreshold6015Reduces VT pool residency; verify your VT pool sizing
r.pso.EnableAsyncCacheConsolidation01New 5.5 default; async PSO consolidation removes startup spike
Async render threadoffparallelizedUp to 2× render-thread perf on some platforms
Verify with DumpCVars DumpCVars r.Lumen -setby=DeviceProfile,Scalability,Code shows which subsystem set each CVar. Reading INI alone doesn't tell you what's actually being applied. Use this before changing any value — you might be fighting a Device Profile override.

Caveats

PerfGuard can record DumpCVars r. -setby=DeviceProfile,Scalability,Code at capture time and surface CVars that changed between baseline and candidate runs — highlighting any row from this Top-30 table in red. Auto-attribution: "this regression coincides with r.Lumen.HardwareRayTracing 0 → 1, expected impact ~1.2 ms per AMD measurements." Suggested rollback shows the most-likely-causal CVar by overlapping per-CVar measured-impact range with observed ms delta.