WIP: docs(tested): record Deck transition and clock measurements #470

Draft
zeldaootr wants to merge 3 commits from zeldaootr/Longshot:deck-transition-evidence into main
First-time contributor

Why

Steam Deck OLED runs stopped under memory pressure when entering Hyrule Field on RC3. A second problem left the GPU at 200 MHz after a failed suspend, which obscured the performance of the recovered system.

What changed

Twelve short test records cover baseline, corrected guest memory accounting, sleep/wake recovery and the recorder-thread comparison, one exploratory affinity run, and a GPU timing breakdown of the Field entrance (RX_VK_PASS_TIMING=2: 27.16 ms GPU time a frame, 8.04 ms of it compute dispatches; instrumentation affects timing). main already includes the accounting change (a4c77174, #324).

Flags and settings

None.

Measurements

main @ cf605c85 and this documentation-only PR @ f2b46643 have identical runtime code. Runs used RC3 with both guest-reporting modes in one executable and the stock renderer. On SteamOS 3.9.5, RADV VANGOGH, Mesa 26.2.0-devel, 16 GB, 1280×720, frame generation off, a copied child Kokiri save was teleported to the Field. The low-memory guard stopped all three legacy-report runs. All five default-renderer corrected-report runs finished the 45 s stationary sample. At Kokiri the first two paired runs had 1,507 and 1,566 MiB less guest backing with the corrected report. The GPU stayed at 200 MHz during a 6.03 FPS sample. Following a successful deep sleep and Bluetooth wake the same corrected build reached 20.47 FPS. One exploratory run with the reserved guest CPU core released (HOS_RESERVE_CORE=0) measured 20.73 FPS; one run is too small to justify changing the default. See the individual rows for settings and all comparison arms.

Testing

Tested: The run records passed tests/test_tested_configurations.py. The guard stopped the old-report runs before an actual kernel OOM. Full suite on this branch: 472 passed, 5 failed, 82 skipped. Failures: test_bake_portability, test_lift_cache, test_menu_keys, test_module_ids, test_pad_layout. All of these also failed on unmodified main (cf605c85) in this environment.

Not tested: Windows and other GPUs.

Needs other testers: None: records only.

Screenshots

Nothing on screen changes.

Risk and rollback

This changes measurement records only. Revert the documentation commit to remove them.

Reviewer notes

This provides Deck evidence for existing code and for the separate suspend problem. The recorder comparison found no repeatable increase at the entrance.

Issues

Related hardware report: https://github.com/ValveSoftware/SteamOS/issues/2964

Checklist

For everyone

  • One topic.
  • The title is a Conventional Commit (type(scope): description).
  • Rebased on current main. One commit behind: main gained dc390e59 (crash records, unrelated); rebased before ready.
  • python -I -B tests/run_all.py run and passing (any failure that also fails on main is named above).
  • Tested in the game, or what wasn't is named under Testing.
  • Testing filled in: what was tested, what wasn't, and what needs other testers (with test requests).
  • Measured: main and this PR at named commits, on the same PC, scene and settings, at least 2 interleaved runs each, the median reported.
  • No game files, dumps, build output or generated files.
  • third_party/ untouched (a new folder with a PROVENANCE.md instead).
  • The license is OK: GPL-3.0-or-later, nothing incompatible and nothing decompiled.

If applicable

  • AI assistance recorded with Assisted-by: / Co-Authored-By: trailers.
  • A file in docs/tested/ for each new measured run (format in docs/tested-configurations.md; no appended row or assembled view).
  • Docs updated.
## Why Steam Deck OLED runs stopped under memory pressure when entering Hyrule Field on RC3. A second problem left the GPU at 200 MHz after a failed suspend, which obscured the performance of the recovered system. ## What changed Twelve short test records cover baseline, corrected guest memory accounting, sleep/wake recovery and the recorder-thread comparison, one exploratory affinity run, and a GPU timing breakdown of the Field entrance (`RX_VK_PASS_TIMING=2`: 27.16 ms GPU time a frame, 8.04 ms of it compute dispatches; instrumentation affects timing). `main` already includes the accounting change (a4c77174, #324). ## Flags and settings None. ## Measurements `main` @ cf605c85 and this documentation-only PR @ f2b46643 have identical runtime code. Runs used RC3 with both guest-reporting modes in one executable and the stock renderer. On SteamOS 3.9.5, RADV VANGOGH, Mesa 26.2.0-devel, 16 GB, 1280×720, frame generation off, a copied child Kokiri save was teleported to the Field. The low-memory guard stopped all three legacy-report runs. All five default-renderer corrected-report runs finished the 45 s stationary sample. At Kokiri the first two paired runs had 1,507 and 1,566 MiB less guest backing with the corrected report. The GPU stayed at 200 MHz during a 6.03 FPS sample. Following a successful deep sleep and Bluetooth wake the same corrected build reached 20.47 FPS. One exploratory run with the reserved guest CPU core released (`HOS_RESERVE_CORE=0`) measured 20.73 FPS; one run is too small to justify changing the default. See the individual rows for settings and all comparison arms. ## Testing **Tested:** The run records passed `tests/test_tested_configurations.py`. The guard stopped the old-report runs before an actual kernel OOM. Full suite on this branch: 472 passed, 5 failed, 82 skipped. Failures: `test_bake_portability`, `test_lift_cache`, `test_menu_keys`, `test_module_ids`, `test_pad_layout`. All of these also failed on unmodified `main` (cf605c85) in this environment. **Not tested:** Windows and other GPUs. **Needs other testers:** None: records only. ## Screenshots Nothing on screen changes. ## Risk and rollback This changes measurement records only. Revert the documentation commit to remove them. ## Reviewer notes This provides Deck evidence for existing code and for the separate suspend problem. The recorder comparison found no repeatable increase at the entrance. ## Issues Related hardware report: https://github.com/ValveSoftware/SteamOS/issues/2964 ## Checklist ### For everyone - [x] One topic. - [x] The title is a Conventional Commit (`type(scope): description`). - [ ] Rebased on current `main`. One commit behind: `main` gained dc390e59 (crash records, unrelated); rebased before ready. - [x] `python -I -B tests/run_all.py` run and passing (any failure that also fails on `main` is named above). - [x] Tested in the game, or what wasn't is named under Testing. - [x] Testing filled in: what was tested, what wasn't, and what needs other testers (with test requests). - [ ] Measured: main and this PR at named commits, on the same PC, scene and settings, at least 2 interleaved runs each, the median reported. - [x] No game files, dumps, build output or generated files. - [x] `third_party/` untouched (a new folder with a `PROVENANCE.md` instead). - [x] The license is OK: GPL-3.0-or-later, nothing incompatible and nothing decompiled. ### If applicable - [x] AI assistance recorded with `Assisted-by:` / `Co-Authored-By:` trailers. - [x] A file in `docs/tested/` for each new measured run (format in `docs/tested-configurations.md`; no appended row or assembled view). - [x] Docs updated.
Assisted-by: OpenAI Codex
Assisted-by: OpenAI Codex
record the Field GPU timing breakdown
Some checks are pending
CI / Conventional Commit title (pull_request) Blocked by required conditions
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Blocked by required conditions
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Blocked by required conditions
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Blocked by required conditions
CI / Workflow lint (actionlint) (pull_request) Blocked by required conditions
Third-party parts / As their notes say (pull_request) Blocked by required conditions
Third-party parts / The same as upstream (pull_request) Blocked by required conditions
Website / Website on Cloudflare (pull_request) Blocked by required conditions
PR description / Description follows the template (pull_request_target) Successful in 26s
Website / Website on Cloudflare (pull_request_target) Has been skipped
5a87e972a5
Assisted-by: OpenAI Codex
Some checks are pending
CI / Conventional Commit title (pull_request) Blocked by required conditions
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Blocked by required conditions
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Blocked by required conditions
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Blocked by required conditions
CI / Workflow lint (actionlint) (pull_request) Blocked by required conditions
Third-party parts / As their notes say (pull_request) Blocked by required conditions
Third-party parts / The same as upstream (pull_request) Blocked by required conditions
Website / Website on Cloudflare (pull_request) Blocked by required conditions
PR description / Description follows the template (pull_request_target) Successful in 26s
Website / Website on Cloudflare (pull_request_target) Has been skipped
This pull request is marked as a work in progress.
Some workflows are waiting to be reviewed.
This branch is out-of-date with the base branch
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u 'deck-transition-evidence:zeldaootr-deck-transition-evidence'
git switch 'zeldaootr-deck-transition-evidence'
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
MagicBeanDev/Longshot!470
No description provided.