In this lesson, you will learn how to leverage GPU timing tracks within Unreal Insights to isolate performance spikes caused by heavy shader math and excessive draw calls.
While CPU profiling tells you what your game logic is doing, the GPU timing track reveals the "cost of beauty." When you open a trace in Unreal Insights and navigate to the Timing Insights window, you will see a track labeled GPU. Unlike the CPU threads, which show task execution, the GPU track visualizes the sequential execution of render passes.
Identifying Expensive Passes
To find performance hogs, look for long, unbroken blocks within the GPU track. If a block labeled BasePass or ShadowDepths is significantly wider than others, you have narrowed your problem area.
- Shader Complexity: If the
BasePassis consistently slow, your material graphs may be too complex, involving excessive texture lookups or expensive math nodes (likeDDX/DDYderivatives). - Draw Call Bottlenecks: A long
Drawcommand duration often indicates too many individual mesh segments or objects being sent to the GPU, causing the Render Thread to wait or the GPU to struggle with state switching.
Drilling Down with Traces
By clicking on a specific GPU event, the Timing Details panel provides the exact duration of that event. You can correlate this with the r.ViewDistanceScale or r.ShaderComplexity console commands to verify your findings. For instance, if a specific mesh shows high GPU time, toggle the visualizer:
# Toggle to visualize shader complexity (Red = expensive)
r.ShaderComplexity 1
Once you observe the GPU track spike during a specific action—such as entering a dense forest or looking at a complex water shader—you can isolate whether the issue is pixel-bound (too many instructions per pixel) or geometry-bound (too many draw calls). By comparing these GPU timings against your established performance baseline, you can quantitatively prove that a material refactor or a reduction in draw calls has successfully improved your frame time.
Key Takeaway: The GPU timing track acts as your primary diagnostic tool for determining whether a frame drop is caused by high-cost shaders or an overwhelming number of draw calls.