Skip to content

Restore six Ocarina foliage libraries with Ampere CAS and record M3 Pro validation - #1462

Open
appleforever11 wants to merge 5 commits into
seedds:mainfrom
appleforever11:codex/oot-m3-validation
Open

appleforever11 wants to merge 5 commits into
seedds:mainfrom
appleforever11:codex/oot-m3-validation

Conversation

@appleforever11

@appleforever11 appleforever11 commented Nov 6, 2026 •

Copy link
Copy Markdown

I rebuilt Ocarina of Time's landed profile and found six foliage compute libraries still failing on Ampere 0x3a9 (ATOMG.CAS). This carries the focused 32-bit global compare-and-swap implementation from seedds's integration commit, with decoder store classification, old-value / predicate handling, and three regression fixtures. I rebuilt the tracked translator and shader-chain stamp together. Copak731's open #1414 includes broader descriptor and atomic changes; this is a narrower overlapping fix, not a replacement for that work.

Front-ends: rebuild shader libraries and the host together for chain 4a7fcd2b71ee.

The full update-v131072 build changes 42,847/42,854 ready libraries on landed main's actual chain adec7d81d970 to 42,853/42,854. All prior successful libraries remain ready. Key 68bbe98b3bfd9876 still fails on opcode 481 at offset zero; its runtime relevance is unknown to me. The six recovered keys and comparison are in the game note's validation data.

I also retained the test fixes that remain absent from upstream 88c7e03: quote graphics recipe paths in checkouts with spaces; update the texture-pool assertion while independently checking the sampler bound; quote the expected partial-package command; and record an opaque, unmapped 64-bit indirect-mesh address without reading it on the CPU (prompted by #1387). Upstream independently landed the display-stub, square-present and readback-cache fixture corrections, so those are not duplicated in the final diff.

Validation

On my M3 Pro (14-core GPU, 36 GiB), macOS 27.2 / Xcode 27.2:

  • Full host and Metal graphics suites passed against the Ocarina profile.
  • Translator: 253 tests run, OK, 2 skipped (251 passed), plus 40 GPU PrimitiveID cases passed. The three new CAS fixtures fail on the old unsupported opcode and pass with this change.
  • Python tools: 1306 tests run, OK, 23 skipped (1283 passed).
  • Documentation: 11 passed. Python lint: 384 baseline findings, zero new. LLVM 23.1.4 C lint: zero new findings above baseline. git diff --check passed.
  • Full shader regression check: zero regressions; no previously successful keys lost.
  • Normal signed Mac app launch, 15+ minute Kokiri Forest run, movement, Saria dialogue, Items/System menus, manual save, full process restart, reload of the new save, camera input and movement tested. Both processes ended cleanly. Details, actual window capture and eight timing rows are in the game note.

A sequential stationary comparison gave median-of-four-window frame medians of 57.64 ms for landed main and 56.13 ms for CAS. I do not claim a speedup from one pair, fixed internal resolution, or console-accurate rendering. The demonstrated improvement is shader coverage.

Regression harness limitation

regress.py check exited 2, not pass:

internal disk: 12.7 GB free; root ../regress-main; 4 workers
[RED] regress.py: no Mac build of 0400486024DEC000 under [local games directory] (found: none)

Ocarina was chosen because its full build exposed this previously unsupported instruction. The complete NUP app build and manual run are separate evidence. Impact analysis also named broad BOTW, Scarlet and TOTK coverage, but I have no prepared harness builds for them. Other games and iOS remain unchecked; I cannot provide five-game coverage. GitHub CI status is separate from these local results.

The earlier, broader combination of community proposals and its repeat tests are preserved as historical evidence, with individual source credits. I did not reapply the old port wholesale after it landed.

@github-actions github-actions Bot added host The Horizon host: SVCs, services, threads, memory (dm/host) nvn NVN on Metal and its tests (dm/gfx/nvn, dm/gfx/tests) tools Tools and scripts (dm/tools, scripts) labels Nov 6, 2026
Carry the focused decoder/emitter and two fixtures from seedds's
f6748a2 in stan69b's integration.
Six FoliageShader compute libraries still fail on landed main's 0x3a9.
Add a regression for an unused returned word retaining its store.

All three CAS fixtures fail on the previous translator and pass after
rebuilding. Preserve the universal launcher and AnyCPU assemblies;
regenerate the tool lock and shader chain. Full game shaders and Mac
validation follow before publication. Copak731's seedds#1414 contains CAS
alongside broader addressing and INC/DEC work; this change stays with
the non-uniform 32-bit form encountered in the game.
@appleforever11 appleforever11 changed the title Keep host and graphics fixtures valid for Ocarina and spaced checkout paths Restore six Ocarina foliage libraries with Ampere CAS and record M3 Pro validation Nov 6, 2026
@github-actions github-actions Bot added docs Documentation shader chain The shader translation chain (DMSH_CHAIN): a change rebuilds every game's shaders game: 0400486024DEC000 A game labels Nov 6, 2026
@appleforever11

appleforever11 commented Nov 8, 2026 •

Copy link
Copy Markdown
Author

M5 Pro follow-up: I tested upstream bd979ced3ae6bad60bf86429a71d172297d93471 with the full 42,848-shader map (chain 3ee52af3ca18). This tests current main, not the head of #1462 or the complete #1590 branch.

Detailed methods, results, limitations, timing JSON and actual-window screenshots. The screenshots have no diagnostic black padding.

At the same Kokiri Forest checkpoint with Low Power Mode disabled, ten consecutive visible 300-frame windows gave median frame p50 23.415 ms with Metal 4 and 24.810 ms with MTLDevice (GPU medians 23.235/24.660 ms). Earlier covered-window samples were discarded. A post-sample power check showed battery operation; the AC-to-battery transition was not recorded, so power consistency is unverified. Dynamic resolution and unequal cache warmth further limit this single-scene comparison; these are not average FPS or a controlled M3-to-M5 speedup. The report includes the saved M3 results as historical context only; I did not rerun the M3 or launch the old build.

Movement/camera, Saria dialogue, menus, manual save → process restart → reload, and house interior/exterior transitions worked. Captured compiler runs had zero RED/FATAL/CRASH markers; longest observed gameplay session was about 24 minutes, not an hour-long stability claim. Combat, dungeons, ocarina playing and audible quality remain untested.

Bulk pipeline prebuild was still incomplete at 6,000/34,649 pairs (920 seconds, zero failures), so I stopped that trial and tested adaptive startup with the retained partial cache instead. First-run white foliage was seen under battery/Low Power Mode conditions; normal-power repeats with both compilers rendered correctly, so its cause is not isolated.

Host and graphics suites passed. Python had one existing environment-switch documentation/catalog failure out of 1,383 tests (23 skipped), detailed in the report. Thank you for the upstream renderer and compatibility work; these are validation findings, not new renderer fixes from me.

Installed-artifact check: the Developer ID signed /Applications/Ocarina of Time.app launched, loaded the forest checkpoint and responded to movement on this Mac. Its actual window capture rendered correctly; the runtime log contained zero FATAL/CRASH markers. This is a short installation smoke test, not an extended stability test.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Documentation game: 0400486024DEC000 A game host The Horizon host: SVCs, services, threads, memory (dm/host) nvn NVN on Metal and its tests (dm/gfx/nvn, dm/gfx/tests) shader chain The shader translation chain (DMSH_CHAIN): a change rebuilds every game's shaders tools Tools and scripts (dm/tools, scripts)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants