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

Debugging Rendering with the Frame Debugger

You will learn to step through individual draw calls to isolate specific objects or material passes causing rendering performance degradation.

In this lesson, you will learn how to surgically isolate rendering performance bottlenecks by stepping through individual draw calls using the Unreal Engine Frame Debugger.

When your frame time spikes, it is rarely the entire scene at fault; usually, one specific mesh, material, or effect is misbehaving. The Frame Debugger (found under Window > Developer Tools > Session Frontend or via the RenderDoc integration) allows you to pause the GPU execution and "scrub" through the scene's construction one command at a time.

Isolating Draw Calls

Once you capture a frame, the Frame Debugger provides an event list. Each entry represents a draw call—the specific instruction sent to the GPU to render a set of triangles. By clicking through these chronologically, you can see exactly which primitive is drawn when.

If you suspect a specific complex material is killing your frame rate, look for its associated draw call in the event list. You can inspect the Pipeline State, which shows the active shaders and blend states for that call. Often, you will find that a single "expensive" object is causing overdraw or forcing an excessive number of state changes, which prevents the GPU from batching effectively.

Filtering by Pass

Performance issues often hide in specific rendering passes rather than the base pass. Use the Pass dropdown in the Frame Debugger to isolate:

  • Shadow Depth Passes: If your frame time is high here, you likely have too many shadow-casting primitives or high-complexity meshes contributing to the shadow map.
  • Base Pass: Check here for high triangle counts or complex pixel shaders.
  • Translucency: If performance tanks when looking at a specific object, it’s often an issue of excessive overlapping transparent layers causing massive overdraw.

By identifying the specific event index where your GPU time spikes, you can pinpoint the exact Static Mesh Component or Material Instance that needs optimization, allowing you to swap it for a lower-LOD version or simplify its shader graph without guessing.

Key Takeaway: The Frame Debugger allows you to move beyond high-level profiling by identifying the specific draw call and rendering pass responsible for a frame’s performance spike.