Course contentsShow
← Unreal Engine Game Development
Lesson 771 of 88011. Performance Profiling and OptimizationFree lesson

Visualizing GPU Workloads with Trace Data

You will learn to utilize GPU timing tracks to pinpoint shader complexity issues and expensive draw calls within the rendering pipeline.

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 BasePass is consistently slow, your material graphs may be too complex, involving excessive texture lookups or expensive math nodes (like DDX/DDY derivatives).
  • Draw Call Bottlenecks: A long Draw command 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.