Lesson 205: Steam Deck gpu_idle_smoke_pass on Menu FPS Cap Receipt (2026)
Direct answer: menu_fps_cap_receipt proves frame pacing; gpu_idle_smoke_pass proves idle GPU cost on an installed Steam Deck build. This lesson closes the July H2 fest-shipping arc with a 15-minute MangoHud idle protocol and mangohud_idle_recovery_receipt_v1.json—after Lesson 204 Fab ORM receipt.

Why this matters now (Deck OLED fest menus)
June–October 2026 teams ship menu FPS caps and file green menu_fps_cap_receipt rows—then streamers clip fan spin at 60 FPS overlay because GPU % never dropped. The MangoHud recovery case study documents the pattern; Deck OLED battery help covers Wh/min (idle_power_smoke_pass). This lesson is the course capstone for gpu_idle_smoke_pass (Help #12 MangoHud fix queued separately).
Beginner path (30-minute setup + 15-minute idle)
| Step | Action | Success check |
|---|---|---|
| 1 | Install fest build from Steam on Deck | Not editor shortcut |
| 2 | Confirm overlay FPS ~ cap target | menu_fps_cap_pass: true |
| 3 | Launch MangoHud logging on title menu | Log file started |
| 4 | Idle 15 minutes (minimal input) | idle_menu_mangohud.log archived |
| 5 | Peak GPU % below team threshold | H4 pass |
| 6 | Set gpu_idle_smoke_pass: true on menu receipt |
H5 pass |
| 7 | Commit mangohud_idle_recovery_receipt_v1.json |
H6 promotion |
Time: 15 min idle (mandatory) + ~45 min audit/fix first pass; full lesson 60 minutes.
Developer path (gates H1–H6)
| Gate | Check | Fail when |
|---|---|---|
| H1 | Repro on installed Deck build | Desktop exe only |
| H2 | Metrics split: FPS vs GPU % documented | Conflated in one screenshot |
| H3 | menu_render_audit.md filed |
No UI/VFX/static camera notes |
| H4 | 15-minute MangoHud log | Peak GPU above threshold |
| H5 | gpu_idle_smoke_pass on menu_fps_cap_receipt |
FPS green, GPU red |
| H6 | Recovery receipt promotion_allowed |
Any H1–H5 red |
menu_fps_cap_receipt_v1.json (GPU column)
{
"schema": "menu_fps_cap_receipt_v1",
"build_label": "deck-fest-2026-rc8",
"menu_target_fps": 60,
"deck_overlay_fps_idle": 60,
"menu_fps_cap_pass": true,
"gpu_idle_smoke_pass": true,
"mangohud_gpu_percent_15min_peak": 42,
"idle_test_minutes": 15,
"device": "steam_deck_oled"
}
Record your measured peak—not template numbers.
mangohud_idle_recovery_receipt_v1.json
{
"schema": "mangohud_idle_recovery_receipt_v1",
"build_label": "deck-fest-2026-rc8",
"paired_menu_fps_cap_receipt": "release-evidence/perf/menu_fps_cap_receipt_v1.json",
"gates": {
"H1_installed_repro": "pass",
"H2_metric_split": "pass",
"H3_menu_render_diet": "pass",
"H4_mangohud_15min": "pass",
"H5_receipt_stack": "pass",
"H6_promotion": "pass"
},
"fixes_applied": [
"disabled_menu_environment_tick",
"render_scale_0.85_menu_only",
"static_menu_camera"
],
"promotion_allowed": true
}
Pin under release-evidence/perf/MANGOHUD_IDLE_RECOVERY_RECEIPT.json.
MangoHud protocol (do not skip)
- Separate
idle_menu_mangohud.logfromgameplay_mangohud.log. - No stick input except one brightness check at minute 5.
- Compare minute 0–1 vs 10–15 for animated UI loops.
- Use 12 Free Deck battery verification tools for capture templates.
Publish gate
ALTER TABLE release_publish_gate ADD COLUMN IF NOT EXISTS
gpu_idle_smoke_blocked BOOLEAN NOT NULL DEFAULT false;
CI verify_gpu_idle_smoke_v1 blocks fest Deck promotion when menu_fps_cap_pass true but gpu_idle_smoke_pass false. Thursday row review must show both columns.
Prerequisites
- Lesson 204 — prior fest-shipping receipt
- Unity menu vSync FPS cap help — fix overlay FPS first
- MangoHud GPU case study
- Wednesday demo smoke
Common mistakes
- Using Editor Play Mode on Deck for GPU proof.
- Treating
idle_power_smoke_pass(Wh/min) asgpu_idle_smoke_pass(GPU %)—run both when battery threads matter. - Promoting on one-minute MangoHud sample.
- Leaving rotating menu backdrop or UI Toolkit rebuild every frame at 60 FPS.
Troubleshooting
| Symptom | Fix |
|---|---|
| Overlay 120 FPS | vSync menu cap help |
| FPS 60, GPU 99% | H3 menu render diet + static camera |
| Fan loud, GPU moderate | Pair with OLED battery help |
| Gameplay OK, menu bad | Separate logs per scene |
Mini exercise (50 minutes + 15 idle)
- Reproduce H4 fail on current menu (log peak GPU).
- Apply one H3 fix (disable env tick or lower menu render scale).
- Re-run 15-minute idle; pass H4.
- Patch
menu_fps_cap_receipt+ recovery receipt. - Add BUILD_RECEIPT row; link from case study.
Continuity
- Previous: Lesson 204 — Fab ORM metallic receipt
- Arc close: July H2 cluster 200–205 complete — Course-Planner refill recommended for next lessons
- Guides (planned): Deck MangoHud preflight (Guide queue #14)
FAQ
Does this replace the case study?
No—the case study is the narrative; this lesson is the receipt milestone in your RPG live-ops course.
What GPU % threshold?
Team-defined (e.g. ≤50% peak on OLED idle menu)—document in menu_render_audit.md, not in this template.
Only Steam Deck LCD?
Protocol works on LCD; receipt device field records hardware. OLED is the 2026 fest review default.
FPS cap receipt green is not Deck-ready until gpu_idle_smoke_pass survives fifteen idle minutes on hardware.