Getting started
Scenario and Run Center tutorial
Create scenarios and Run Profiles, execute desktop or external-device runs, review comparisons, and automate the same workflow in CI.
1. Create a Performance Scenario
Open Assets > Create > Kiwi Studios > Performance Lab > Performance Scenario. Set a stable scenario ID, run name/tags, source scene, target platform, Development or Release build, warmup mode, sample mode, repetitions, cooldown, timeout, transport preference, output policy, environment requirements, and selected metrics.
Custom markers use a stable ID plus the exact emitted ProfilerMarker name. Loading transitions bind a target scene and before/after-sampling hook. Extension metrics bind a registered provider stable ID and expected unit.
2. Create a Run Profile
Open Assets > Create > Kiwi Studios > Performance Lab > Run Profile or use the Run Center. A Run Profile binds the scenario to the actual Unity BuildTarget, repetition count, cooldown, timeout/retry policy, transport, optional reviewed baseline bundles, outlier policy, and budgets.
Use explicit budgets. A full pipeline with no reviewed budget fails configuration; use capture mode when intentionally collecting ungated evidence.
3. Run desktop targets
Open Tools > Kiwi Studios > Performance Lab > Scenario and Run Center and choose Build and Run Full Pipeline.
Performance Lab builds one injected player, records BuildReport evidence, inventories the exact player bytes, verifies the same inventory before every repetition, launches each repetition with a unique authenticated capture configuration, collects the selected transport, enforces environment requirements, aggregates repetitions, compares baselines/budgets, and exports evidence.
Cancellation stops the current process. Force Stop is for a stuck process. If Unity/domain reload interrupts the run, reopen the Scenario and Run Center. Its Recovery section reveals the authenticated partial evidence and can retry the bound profile as a brand-new reviewed run. Performance Lab never silently resumes a benchmark from the middle.
4. Run Android, iOS, or WebGL
Choose an external target in the Run Profile. The Run Center switches to the External-device workflow.
- Choose Build External Capture Kit.
- Preserve the generated kit manifest, BuildReport evidence, and player inventory.
- Deploy the exact built bytes without rebuilding them elsewhere.
- Launch the player once per expected repetition. The queue does not advance until the current portable bundle is successfully published.
- On WebGL, use the in-player user-gesture download gate to save each
.kplabfile. - Copy all expected
.kplabfiles into one folder. - In the Run Center choose Import, Analyze, Gate, and Export. Missing, duplicate, extra, or foreign bundle identities fail closed.
For unattended device workflows, the same production entry point supports external-build, external-import, and external-full. See CI.
5. Review statistics and baselines
Open Window > Kiwi Studios > Performance Lab. The built-in review window links directly to Scenario & Run Center and Baselines & Run History, and renders player or BuildReport comparisons through the same dashboard surface.
Review minimum/median/p90/p95/p99/maximum, raw/included/excluded counts, capability state, environment identity, and every budget decision. Accepting or rolling back a baseline creates audited immutable history rather than overwriting the previous revision.
6. A/B and A-B-B-A
Capture variants with stable identities and the same reviewed environment. A/B compares the two explicit variants. A-B-B-A requires contiguous source order A, B, B, A and rejects ambiguous ordering. See statistics and baselines.
7. BuildReport evidence
Keep the BuildReport returned by your completed BuildPipeline.BuildPlayer call and pass it to KiwiPerformanceBuildReportIngestor.Capture. After creating the reviewed BuildReport baseline/comparison, call KiwiPerformanceLabWindow.OpenWithBuildComparison to review build result, duration, size, files, warnings/errors, options, environment, and budgets in the built-in Performance Lab window. Customers do not need to create or wire a dashboard view themselves.
Build duration is only a benchmark when the build host/workload is intentionally controlled; otherwise treat it as diagnostic evidence.
8. CI
Invoke Unity with -batchmode -executeMethod KiwiStudios.PerformanceLab.Editor.KiwiPerformanceBatch.Execute plus --performance-lab-command and the required profile/input/output arguments. Do not add -quit; the batch service exits Unity after its asynchronous pipeline completes. See CI.
Still stuck?
Bring the exact evidence with you.
Include Performance Lab and Unity versions, the scenario and Run Profile, target and build type, environment identity, focused logs, and only the smallest replayable evidence needed to reproduce the problem.