Skip to content

Debugging Tips ​

Compile all blueprints ​

sh
- "Engine\Binaries\Win64\UnrealEditor-cmd.exe -run=CompileAllBlueprints"
- Add this to print to text file ">F:\MyLog.txt | type F:\MyLog.txt"

Shadow cache stats ​

sh
- r.ShaderPrint 1 & r.Shadow.VirtualShowStats 2

Activate the VSYNC ​

Prevents tearing of the image but costs fps and causes input latency.

sh
r.VSync = 0

Enabling Dynamic Resolution ​

https://docs.unrealengine.com/4.27/en-US/RenderingAndGraphics/DynamicResolution/ Dynamic Resolution adjusts the primary screen percentage according to the previous frames' GPU workload. The resolution adjusts (as needed) based on a heuristic, for example, when there are too many objects on the screen, or if there is an expensive effect that suddenly enters the frame. The GPU rendering time will increase, and the resolution of the screen will be lowered to maintain the targeted frame rate. At Runtime

cpp
GEngine->GetDynamicResolutionStatus()->SetEnabled(true);

Controlling Dynamic Resolution With Operation Mode

sh
r.DynamicRes.OperationMode

Disable WPO invalidating shadow cache ​

sh
- Global: r.Shadow.Virtual.Cache.MaxMaterialPositionInvalidationRange
- Per foliage instance: Foliage Mode-> Instance Settings -> World Position Offset Disable Distance

Draw mesh bounds causing cache invalidations ​

sh
- r.Shadow.Virtual.Cache.DeformableMeshesInvalidate 1

Handy visualization modes ​

sh
- ViewMode -> Nanite Visualization -> Evaluate WPO
- ViewMode -> Virtual Shadow Map -> Cached Page
- Show -> Visualize -> Draw Only Geometry Causing VSM Invalidation

Released under the MIT License.