Quick answer: TMP uses its own font atlas material; UGUI Image uses the sprite atlas. Group all Images then all TMP labels (in sibling order) to minimize material switches. One sprite atlas, one font asset across the canvas where possible.

Here is how to fix Unity UI draw calls ballooning when you add TextMeshPro labels. Each material switch breaks batching; TMP’s font material differs from sprite Atlas, so interleaving inflates draw count.

The Symptom

Stats panel shows 50 draw calls for a UI with 10 buttons (each with an Image and a TMP label). Without TMP, all 10 buttons batch to 1 draw call.

What Causes This

Material switches. Image material A → TMP material B → Image material A breaks batching at each transition.

TMP submeshes. Fallback fonts add submeshes, each with its own material.

Different sprite atlases. Multiple sprite atlases multiply Image draw calls.

The Fix

Step 1: Group siblings by material type.

// Before: bad order
ButtonGroup
  Button1: Image, TMPLabel
  Button2: Image, TMPLabel
  ...

// After: separate group
ButtonGroup
  ImagesContainer
    Button1Image
    Button2Image
    ...
  LabelsContainer
    Button1Label (TMP)
    Button2Label (TMP)
    ...

The change is structural; siblings render in tree order. Grouping by material reduces material switches.

Step 2: Use one sprite atlas. Pack all UI sprites into a single SpriteAtlas asset. Inspector confirms atlasing via Sprite Atlas Packing window.

Step 3: One font asset. Use one TMP font asset for all standard text. Different fonts = different materials.

Step 4: Inspect with Frame Debugger. Window → Analysis → Frame Debugger. Look at the Canvas batches; count material switches. Fewer = better.

Step 5: Disable Cull Transparent Mesh and other off-by-default optimizations cautiously. They can interact with TMP’s mesh generation.

Performance Impact

Going from 50 draw calls to 8 by grouping is common. On mobile with 60 FPS targets, every draw call counts.

“Group siblings by material. One sprite atlas. One font asset. Batching returns.”

Related Issues

For TMP emoji, see TMP Emoji. For Canvas culling, see Canvas Cull Mask.

Group siblings by material. Atlas everywhere. One font. Batching restored.