The UI Profiler is a profiler module dedicated to in-game UI.
Access it via the Profiler Window’s menu: Add Profiler > UI and UI Details.
Use this feature to help with understanding the ui batching, why and how objects are batched, which part of the UI is responsible for a slow down, preview the UI or part of it when scrubbing the timeline.
Note that this Profiler is quite resource intensive, similar to other Profiler modules.
The UI Details chart has a togglable Markers group, similarl to what the CPU chart offers. In the preview panel, there’s a button Detach and two drop-down menus.
The Markers toggle displays or hide event markers on the UI details chart.
Detach pops the preview out in a separate window.
The two drop-down menus allow you to choose the preview background (black, white, or checkerboard) and the preview type (original render, overdraw, or omposite overdraw).
Markers can be overwhelming, depending on the usecase profiled. Hiding or showing them when needed helps the chart readability.
To make visibility clearer, you can select the preview background according to the UI you are previewing. A white-ish UI on a white background won’t be readable, for example, so you can change it.
Detaching the preview allows better screen estate management.
Overdraw and composite overdraw are used to determine which parts of the UI are drawn for nothing.
Marker: markers are recorded when the user interacts with the UI (button click, slider value change, …) and then drawn, if enabled, as vertical lines and labels on the chart.
Batch: the UI system tries to batch draw calls. There are many reasons two objects could not be batched together.
Batch Breaking Reasons
Not Coplanar With Canvas:
The batching needs the object’s rect transform to be coplanar (unrotated) with the canvas.
A CanvasGroup component is present and forces a new batch, ie. when displaying the drop down list of a combo box on top of the rest.
Different Material Instance, Rect clipping, Texture, A8TextureUsage:
Only objects with identical materials, masking, textures, texture alpha channel usage can be batched together.
Treeview rows have a context menu with a “find matching object in scene” entry, which is also triggerable by double clicking on a row.