Repository navigation
Restore six Ocarina foliage libraries with Ampere CAS and record M3 Pro validation - #1462
appleforever11 wants to merge 5 commits into
Conversation
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.
…#1462's CAS, seedds#1487, seedds#1329, seedds#1410, seedds#1411, seedds#1412, seedds#1357): lock and chain header; conflict leftovers removed from shaders.md and test_dmsh_ampere_alu.py
|
M5 Pro follow-up: I tested upstream 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 |
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
adec7d81d970to 42,853/42,854. All prior successful libraries remain ready. Key68bbe98b3bfd9876still 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:
git diff --checkpassed.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 checkexited 2, not pass: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.