Search Issue Tracker

By Design

Votes

0

Found in

6000.0.50f1

6000.1.5f1

6000.2.0b4

Issue ID

UUM-107817

Regression

No

The number of SetPass Calls is increasing when attaching the Frame Debugger to the Player

-

How to reproduce:
1. Open the “SRPBatchRepro” project
2. Build and run the project on the Windows platform with “Development Build” enabled
3. Once the build is complete and launched, open the Profiler window
4. In the Profiler window, connect to the Player
5. Note the number of SetPass Calls in the Rendering Tab
6. Open the Frame Debugger window
7. Repeat step 5

Expected result: The number of SetPass Calls remains constant
Actual result: The number of SetPass Calls increases

Reproducible with: 6000.0.50f1, 6000.1.5f1, 6000.2.0b4
Could not test with: 2022.3.62f1 (Build completed with a result of 'Failed')

Reproducible environments: Windows 10
Not reproducible environments: No other environments tested

  1. Resolution Note:

    We have observed problem in the number of SetPass Calls reported between the Unity Profiler and the Frame Debugger, especially when analyzing complex scenes with heavy rendering. Upon investigation, we believe this difference is expected due to the working nature of the Frame Debugger.
    Below are the key factors contributing to this behavior:
    Frame Debugger replays, not records: The Frame Debugger does not capture the exact GPU execution. Instead, it replays rendering operations step by step using the CPU, which includes temporary render targets, shadow passes, and UI layers. This replay process adds additional SetPass Calls that would not normally appear in runtime execution.
    Editor UI overhead: Opening the Frame Debugger itself introduces additional editor UI draw calls. Unity has to redraw internal windows using IMGUI or UI Toolkit, which results in increased SetPass Calls unrelated to the actual scene.
    Live rendering interference: When the Frame Debugger is opened during live scene playback, it adds overhead while trying to snapshot a moving frame. This further complex the representation of actual draw call behavior at runtime.
    Scene complexity amplifies the effect: In scenes with multiple layers, post processing effects, several rendering passes, the replay becomes heavier and introduces more variance this adds to profiler when we navigate the frame debugger during runtime.
    Recommended workflow: For a more accurate representation of draw calls and SetPass Calls, we suggest using the Profiler to record the frame first, then pausing the editor and opening the Frame Debugger for analysis. This avoids the impact of real-time UI redraw and editor overhead.

    Sometimes it can also be helpful to use an external tool that captures and stores a single frame, for instance RenderDoc or Xcode.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.