Bake Monitor

The Bake Monitor provides a live overview of the system during Play Mode.

Open the Bake Monitor from Tools -> Runtime Navmesh Baker -> Window -> Bake Monitor

What it shows

  • Queued jobs and in-flight operations

    • Current queue length, running async jobs, and skipped jobs

  • Per-surface status

    • Registered surfaces, last bake result, last duration (ms)

    • Agent types baked for each surface

  • Aggregate metrics

    • Update p95, Collect p95, Schedule p95 timings

  • Skipped counts and reasons

    • “no-src” (no build sources found)

    • “outside-bounds” (region didn’t intersect surface)

    • “rebake-throttled” (profile rate limits)

  • Mode-aware view (new in 1.4.0)

    • Continuous AABB / Grid Cells: live updates as bubbles/cells move

    • One Shot: shows one large enqueue at startup or when manually triggered, then remains idle unless a rebake is forced

  • Spawner Feedback (new in 1.4.0)

    • Placement policy deferrals (“Require” spawns queued until bake complete) can be tracked alongside bake events


When to use it

  • Profiling throughput and locating bottlenecks in baking

  • Verifying grid rings / AABB updates are enqueueing as expected

  • Confirming One Shot completion before spawning AI

  • Spotting surfaces that never contribute sources (high skipped counts)

  • Debugging deferred spawns — ensure that “Require” policies resolve once the correct navmesh is baked

What does p95 mean in the Bake Monitor?

  • p95 = 95th percentile timing

  • It’s a common profiling metric that shows the worst-case performance experienced by ~95% of jobs (i.e. it ignores only the slowest 5%).

  • This is more stable and useful than just showing max (which can be a single outlier), while still giving visibility into spikes.

The Bake Monitor reports p95 timings for the three main stages of the bake pipeline:

  • Update (p95) — cost of updating surface state and enqueue logic

  • Collect (p95) — time spent gathering geometry (NavMeshBuildSource) from registered surfaces

  • Schedule (p95) — overhead of pushing jobs into Unity’s async NavMeshBuilder


Why it matters

  • Helps you spot systemic spikes (e.g. if Collect p95 jumps when many colliders are spawned).

  • Lets you tune poll rates, rebake intervals, and concurrency with a stable performance baseline.

  • Useful for balancing CPU budget:

    • If Update p95 is high → too many surfaces marked dirty too often

    • If Collect p95 is high → surfaces have heavy geometry (colliders/meshes)

    • If Schedule p95 is high → too many concurrent jobs or expensive tile builds

Last updated