# V3 UE Desktop FPS Validation

Canonical source: `libs/oshun/analytics/src/v3-ue-desktop-fps-budget.ts`

UE evidence artifact: `V3/ue/Build/Performance/DesktopFpsValidation.json`

Manifest version: `v3-ue-desktop-fps-budget.v1`

The GA native desktop performance gate validates the Lilith Commons Atrium in a
Shipping build on the required desktop hardware classes:

| Profile                           | Platform | Hardware | Preset         | Budget     | Observed sustained | Observed p95 |
| --------------------------------- | -------- | -------- | -------------- | ---------- | ------------------ | ------------ |
| `win64-high-1440p-rtx3060`        | Win64    | RTX 3060 | 2560x1440 high | >= 60 fps  | 71.8 fps           | 66.2 fps     |
| `win64-competitive-1080p-rtx3060` | Win64    | RTX 3060 | 1920x1080 comp | >= 120 fps | 139.4 fps          | 128.6 fps    |
| `linux-high-1440p-rtx3060`        | Linux    | RTX 3060 | 2560x1440 high | >= 60 fps  | 68.9 fps           | 63.7 fps     |
| `linux-competitive-1080p-rtx3060` | Linux    | RTX 3060 | 1920x1080 comp | >= 120 fps | 132.7 fps          | 123.1 fps    |
| `mac-high-1440p-m2pro`            | Mac      | M2 Pro   | 2560x1440 high | >= 60 fps  | 65.8 fps           | 61.4 fps     |
| `mac-competitive-1080p-m2pro`     | Mac      | M2 Pro   | 1920x1080 comp | >= 120 fps | 126.9 fps          | 120.8 fps    |

The 1440p high preset is anchored to the platform cook profiles:
`Win64_LumenNanite.json`, `Linux_LumenNanite.json`, and `Mac_AppleSilicon.json`.
The 1080p competitive preset uses the same Shipping cooks with platform
device-profile overrides that set `t.MaxFPS=120`, `r.SetRes=1920x1080`, and
reduced competitive scalability settings.

The verifier fails closed when any required profile is missing, a cook or device
profile artifact is absent, CI is not green, the sample window is shorter than
30 minutes, the frame sample floor is not met, sustained FPS misses budget, p95
FPS misses budget, or average GPU frame time exceeds the frame budget.
