# V2 Engineering Performance Polish

The Section 89 performance package is enforced by
`V2/ue/Build/Performance/v2-engineering-polish-manifest.json` and mirrored in
`V2/ue/Content/V2/Performance/EngineeringPolish_V2_Contract.json`.

## First Launch Warmup

First launch enumerates every shader and pipeline state used in the first five
minutes of play: MainMenu, CharacterSelect, and FirstMatch. The install or
first-launch loading screen runs the precompile job behind
`Boot.Progress.PSOShaderWarmup` and ships per-platform PSO blobs for Win64, PS5,
XSX, and Switch2. PSO patch channels update those blobs independently from full
content patches.

Driver upgrades invalidate the PSO cache by comparing `RHI.DriverVersion` with
the saved fingerprint. A mismatch triggers an automatic rebuild; corruption uses
the same safe-mode rebuild path.

## Shader Prewarm

The shader prewarm pass dummy-renders every required variant at first launch and
whenever a cosmetic pack loads. Cooked builds include per-platform precompiled
shaders, ShaderCompileWorker is required in CI, and development builds share DDC
through `$(UE_SHARED_DDC)/V2/DDC`.

## Save Open Preload

Opening a save preloads the main-menu cinematic, character-select roster assets,
the last-used fighter, and the selected stage. The main menu binds progress to
`MainMenu.Progress.AssetPreload`. Session-pattern preloading reads the player's
mode histogram; a player who usually opens MK ruleset content gets MK ruleset
packages promoted before lower-probability content.

## Tickrate And Frame Pacing

Client-server modes default to 60Hz and can downshift to 30Hz when server CPU
load crosses the policy threshold. Small unranked dedicated-server sessions can
run at 128Hz for 1-2 players, medium sessions stay at 60Hz through 8 players,
and larger sessions resolve to 30Hz. Rollback simulation stays at 60Hz. Per-mode
defaults are: ranked 1v1 60Hz, Battle Hub 30Hz, World Tour 60Hz, and tournament
matches 60Hz.

Console builds default VSync on. PC exposes `Settings.Video.VSync`. When VRR is
detected, VSync is toggled off and Reflex / Anti-Lag 2 are enabled where the
platform plugin is available. Rendering uses triple buffering with frame pacing
diagnostics under `V2.QA.FramePacing`.

## Async Work

Match asset streaming runs in the background and defers every deferrable
operation away from the game thread. Cloud save writes during match play are
queued at low priority. Battle Pass tier-up, Mastery level-up, Achievement
progress, and Friend list refresh run on worker-thread queues and never block
UI. Background downloads continue during play with a bandwidth throttle setting.

## Overlay And Telemetry

The dev-only performance overlay is hidden in release builds and is only opened
with `v2.PerfOverlay.Show`. It displays FPS, frame time, latency, GPU-bound /
CPU-bound state, GC pressure, and memory. The video settings screen exposes
`Settings.Video.PerformanceModePreset` for per-platform performance presets.

Telemetry sampling is randomized per session between 1 and 100 percent and stays
stable for that session. Critical override events are always sampled at 100
percent: `v2.match.crash.reported` and `v2.player.cheat-detection.detected`.
