Rendering Debugger
The Rendering Debugger window lets you visualize various lighting, rendering, and Material properties. The visualizations help you identify rendering issues and optimize Scenes and rendering configurations.
This section contains the following topics:
How to access the Rendering Debugger.
Information on how to access the Rendering Debugger window in the Editor, in the Play mode, and at runtime in Development builds.
-
How to navigate the Rendering Debugger interface at runtime.
Rendering Debugger window sections
Descriptions of the elements and properties in the Rendering Debugger window.
How to access the Rendering Debugger
The Rendering Debugger window is available in the following modes:
Mode | Platform | Availability | How to Open the Rendering Debugger |
---|---|---|---|
Editor | All | Yes (window in the Editor) | Select Window > Analysis > Rendering Debugger |
Play mode | All | Yes (overlay in the Game view) | On a desktop or laptop computer, press LeftCtrl+Backspace (LeftCtrl+Delete on macOS) On a console controller, press L3 and R3 (Left Stick and Right Stick) |
Runtime | Desktop/Laptop | Yes (only in Development builds) | Press LeftCtrl+Backspace (LeftCtrl+Delete on macOS) |
Runtime | Console | Yes (only in Development builds) | Press L3 and R3 (Left Stick and Right Stick) |
Runtime | Mobile | Yes (only in Development builds) | Use a three-finger double tap |
To enable all the sections of the Rendering Debugger in your built application, disable Strip Debug Variants in Project Settings > Graphics > URP Global Settings. Otherwise, you can only use the Display Stats section.
To disable the runtime UI, use the enableRuntimeUI property.
Note
When using the Rendering Debugger window in the Development build, clear the Strip Debug Variants check box in Project Settings > Graphics > URP Global Settings.
Navigation at runtime
Keyboard
Action | Control |
---|---|
Change the current active item | Use the arrow keys |
Change the current tab | Use the Page up and Page down keys (Fn + Up and Fn + Down keys respectively for MacOS) |
Display the current active item independently of the debug window | Press the right Shift key |
Xbox Controller
Action | Control |
---|---|
Change the current active item | Use the Directional pad (D-Pad) |
Change the current tab | Use the Left Bumper and Right Bumper |
Display the current active item independently of the debug window | Press the X button |
PlayStation Controller
Action | Control |
---|---|
Change the current active item | Use the Directional buttons |
Change the current tab | Use the L1 button and R1 button |
Display the current active item independently of the debug window | Press the Square button |
Rendering Debugger window sections
The Rendering Debugger window contains the following sections:
The following illustration shows the Rendering Debugger window in the Scene view.
Display Stats
The Display Stats panel shows statistics relevant to debugging performance issues in your project. You can only view this section of the Rendering Debugger in Play mode.
Use the [runtime shortcuts](#Navigation at runtime) to open the Display stats window in the scene view at runtime.
Frame Stats
The Frame Stats section displays the average, minimum, and maximum value of each property. HDRP calculates each Frame Stat value over the 30 most recent frames.
Property | Description |
---|---|
Frame Rate | The frame rate (in frames per second) for the current camera view. |
Frame Time | The total frame time for the current camera view. |
CPU Main Thread Frame | The total time (in milliseconds) between the start of the frame and the time when the Main Thread finished the job. |
CPU Render Thread Frame | The time (in milliseconds) between the start of the work on the Render Thread and the time Unity waits to render the present frame (Gfx.PresentFrame). |
CPU Present Wait | The time (in milliseconds) that the CPU spent waiting for Unity to render the present frame (Gfx.PresentFrame) during the last frame. |
GPU Frame | The amount of time (in milliseconds) the GPU takes to render a given frame. |
Debug XR Layout | Display debug information for XR passes. This mode is only available in editor and development builds. |
Bottlenecks
A bottleneck is a condition that occurs when one process performs significantly slower than other components, and other components depend on it.
The Bottlenecks section describes the distribution of the last 60 frames across the CPU and GPU. You can only see the Bottleneck information when you build your player on a device.
Note: Vsync limits the Frame Rate based on the refresh rate of your device’s screen. This means when you enable Vsync, the Present Limited category is 100% in most cases. To turn Vsync off, go to Edit > Project settings > Quality > Current Active Quality Level and set the Vsync Count set to Don't Sync.
Bottleneck categories
Category | Description |
---|---|
CPU | The percentage of the last 60 frames in which the CPU limited the frame time. |
GPU | The percentage of the last 60 frames in which the GPU limited the frame time. |
Present limited | The percentage of the last 60 frames in which the frame time was limited by the following presentation constraints: • Vertical Sync (Vsync): Vsync synchronizes rendering to the refresh rate of your display. •Target framerate: A function that you can use to manually limit the frame rate of an application. If a frame is ready before the time you specify in targetFrameRate, Unity waits before presenting the frame. |
Balanced | This percentage of the last 60 frames in which the frame time was not limited by any of the above categories. A frame that is 100% balanced indicates the processing time for both CPU and GPU is approximately equal. |
Bottleneck example
If Vsync limited 20 of the 60 most recent frames, the Bottleneck section might appear as follows:
- CPU 0.0%: This indicates that HDRP did not render any of the last 60 frames on the CPU.
- GPU 66.6%: This indicates that the GPU limited 66.6% of the 60 most recent frames rendered by HDRP.
- Present Limited 33.3%: This indicates that presentation constraints (Vsync or the target framerate) limited 33.3% of the last 60 frames.
- Balanced 0.0%: This indicates that in the last 60 frames, there were 0 frames where the CPU processing time and GPU processing time were the same.
In this example, the bottleneck is the GPU.
Detailed Stats
The Detailed Stats section displays the amount of time in milliseconds that each rendering step takes on the CPU and GPU. HDRP updates these values once every frame based on the previous frame.
Property | Description |
---|---|
Update every second with average | Calculate average values over one second and update every second. |
Hide empty scopes | Hide profiling scopes that use 0.00ms of processing time on the CPU and GPU. |
Debug XR Layout | Enable to display debug information for XR passes. This mode only appears in the editor and development builds. |
Frequently Used
This section contains a selection of properties that users use often. The properties are from the other sections in the Rendering Debugger window. For information about the properties, refer to the sections Material, Lighting, and Rendering.
Material
The properties in this section let you visualize different Material properties.
Material Filters
Property | Description |
---|---|
Material Override | Select a Material property to visualize on every GameObject on screen. The available options are:
|
Vertex Attribute | Select a vertex attribute of GameObjects to visualize on screen. The available options are:
|
Material Validation
Property | Description |
---|---|
Material Validation Mode | Select which Material properties to visualize: Albedo, or Metallic. Selecting one of the properties shows the new context menu. |
Validation Mode: Albedo | Selecting Albedo in the Material Validation Mode property shows the Albedo Settings section with the following properties: Validation Preset: Select a pre-configured material, or Default Luminance to visualize luminance ranges. Min Luminance: Unity draws pixels where the luminance is lower than this value with red color. Max Luminance: Unity draws pixels where the luminance is higher than this value with blue color. Hue Tolerance: available only when you select a pre-set material. Unity adds the hue tolerance to the minimum and maximum luminance values. Saturation Tolerance: available only when you select a pre-set material. Unity adds the saturation tolerance to the minimum and maximum luminance values. |
Validation Mode: Metallic | Selecting Metallic in the Material Validation Mode property shows the Metallic Settings section with the following properties: Min Value: Unity draws pixels where the metallic value is lower than this value with red color. Max Value: Unity draws pixels where the metallic value is higher than this value with blue color. |
Lighting
The properties in this section let you visualize different settings and elements related to the lighting system, such as shadow cascades, reflections, contributions of the Main and the Additional Lights, and so on.
Lighting Debug Modes
Property | Description |
---|---|
Lighting Debug Mode | Specifies which lighting and shadow information to overlay on-screen to debug. The options are:
|
Lighting Features | Specifies flags for which lighting features contribute to the final lighting result. Use this to view and debug specific lighting features in your scene. The options are:
|
Rendering
The properties in this section let you visualize different rendering features.
Rendering Debug
Property | Description |
---|---|
Map Overlays | Specifies which render pipeline texture to overlay on the screen. The options are:
|
** Map Size** | The width and height of the overlay texture as a percentage of the view window URP displays it in. For example, a value of 50 fills up a quarter of the screen (50% of the width and 50% of the height). |
HDR | Indicates whether to use high dynamic range (HDR) to render the scene. Enabling this property only has an effect if you enable HDR in your URP Asset. |
MSAA | Indicates whether to use Multisample Anti-aliasing (MSAA) to render the scene. Enabling this property only has an effect if:
|
Post-processing | Specifies how URP applies post-processing. The options are:
|
Additional Wireframe Modes | Specifies whether and how to render wireframes for meshes in your scene. The options are:
|
Overdraw | Indicates whether to render the overdraw debug view. This is useful to see where Unity draws pixels over one other. |
Pixel Validation
The Pixel Validation subsection.
Property | Description |
---|---|
Pixel Validation Mode | Specifies which mode Unity uses to validate pixel color values. The options are:
|
** Channels** | Specifies which value to use for the pixel value range validation. The options are:
|
** Value Range Min** | The minimum valid color value. Unity highlights color values that are less than this value. This property only appears if you set Pixel Validation Mode to Highlight Values Outside Range. |
** Value Range Max** | The maximum valid color value. Unity highlights color values that are greater than this value. This property only appears if you set Pixel Validation Mode to Highlight Values Outside Range. |