Repository navigation
Reference: Ocarina of Time Duo memory measurements & DKB iPhone 17 Pro Max note - #1369
Open
oliverames wants to merge 3 commits into
Open
oliverames wants to merge 3 commits into
oliverames wants to merge 3 commits into
Conversation
gnosticgeek
pushed a commit
to gnosticgeek/nxforge
that referenced
this pull request
Nov 5, 2026
…t 3D load does to an iPhone's GPU memory (Ocarina of Time on an iPhone Duo) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016qteK29T18U8p1c9LsVY8g
gnosticgeek
pushed a commit
to gnosticgeek/nxforge
that referenced
this pull request
Nov 6, 2026
) replaces the pull request heads Upstream landed Ocarina of Time in main (chain adec7d81d970: "holds 60 fps in Kokiri Forest, 4 GB less") and closed the pull requests it folded in, with reworded and partly different code. Mixing a pull request head with its landed version hunk by hunk silently broke things (two GlobalToStorage tables, a duplicate AF2ip, two mtk_pso definitions), so the rule here is one version per feature: - Pull requests upstream closed (seedds#1299, seedds#1300, seedds#1312, seedds#1343, seedds#1345, seedds#1353, seedds#1354, seedds#1359, seedds#1360, seedds#1373, seedds#1428, seedds#1430, seedds#1434): their hunks are taken out of our side before the three-way merge, so upstream's landed version stands alone. Gone with them: bindless pool table patching (reg_bump), the ghost table's per-submission hold, the growing raw pool table and its write-log sizing, seedds#1428's pool_buf spares (upstream's pool_table_take is the same idea), the ixc-based indirect mesh draw (upstream uses mdx), and their tests (t_pool_table, t_mesh_indirect, t_gmem_raw, finalized_bindless_pool, test_bnsh_nvn2, test_ndve). - Open pull requests that upstream's landing supersedes: seedds#1394 (upstream's mtl_pool_addressed) and seedds#1393 pool_skip_retired (upstream's budgeted pool walk; the profile does not use it) are dropped with their tests and docs. seedds#1368's mesh pipeline prewarm is dropped too: upstream kept the background build in nvn_geometry.inc, and the prewarm's mtk_build / mtk_claim / g_warm_mps went with it. - Kept, as upstream does not have them: NXForge's own features (GPU watchdog, present filters and anti-aliasing, aniso floor, quick settings, pipeline archive compaction, upload breakdown, memory report lines) and the still open pull requests seedds#1304, seedds#1305, seedds#1308, seedds#1320, seedds#1331, seedds#1332, seedds#1355, seedds#1356, seedds#1369, seedds#1376, seedds#1377, seedds#1379, seedds#1382, seedds#1390, seedds#1391, seedds#1392, seedds#1414, seedds#1420, seedds#1436, seedds#1439, seedds#1446, seedds#1453. - Combined where both sides changed the same lines: GW_N 1 << 16 with seedds#1320's wide-write intervals (GW_PAGES = SBW_WPAGES, 128 slots), the CPU upload log with upstream's linear upload route, arch_open_end before the compaction limit, cbn_prog in geo_gs_one (seedds#1382). - Translator: upstream's sources and binaries, plus seedds#1414's InstEmitAmpereMem diff and the LDSM SubgroupBarrier in InstEmitAmpereTensor.cs. The binaries and dmsh_chain.lock are upstream's until the Mac rebuilds them (dotnet publish, tool_lock --update-lock, dmsh_chain --header); dmsh_chain.h is regenerated for now. - RED_ONCE keys: upstream took 153 and 154, so the present anti-aliasing lines move to 156 and 157 and seedds#1420's packaged-entry line to 158 (array 159). - Host: hle_net.c and t_net_eventfd.c are upstream's (its eventfd poll waits out the whole timeout, which our 5d7920c fixed another way). - Kept ours: dm/tools/romfs_image.py and its test, so the 26 GB RomFS image is not packed again. dm/tools tests on Linux: same failures as on 875449e (Linux-only quirks), plus test_nlg4 and test_dmsh_pool_arrays, which fail on upstream main too. Not yet built on the Mac. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016qteK29T18U8p1c9LsVY8g
oliverames
force-pushed
the
docs-ocarina-iphone-memory
branch
from
November 6, 2026 21:10
61cd346 to
e9015c2
Compare
3 tasks done
oliverames
force-pushed
the
docs-ocarina-iphone-memory
branch
2 times, most recently
from
November 10, 2026 00:58
bf3671c to
304ae57
Compare
added 2 commits
November 10, 2026 09:00
…PU memory (Ocarina of Time on an iPhone Duo)
…at was not, in the game note The note said iOS was untested. The update now runs a saved gameplay spot on an iPhone 17 Pro Max (A19 Pro, iOS 27.2), so the note gets an iPhone measurements section instead: the scene size and upscaler (1676x943 into MetalFX's 2304x1296, the game's 2880x1620 window presented into a 2346x1320 drawable), the encoder timings of 33 sampled frames at thermal state 2, a 70-second route on a combined local build at thermal state 0 (six windows at p99 33.34 ms, 5131 MiB footprint, 3060 MiB headroom), and the handheld and docked reruns that did not hold 30 fps. Every number comes from a log in the session's evidence folder, and each feature that is not on main (drawable capture, the native-size window copy, the scaler size log) is named with its PR. The section ends with what is not established: sustained frame rate under heat, every-dispatch scene sizes, a handheld rate above 30 fps and any change to the fur's shimmer. The intro and the Open list point at the section, next to the community report (issue seedds#1183) that main has since added in place of "iOS untested".
oliverames
force-pushed
the
docs-ocarina-iphone-memory
branch
from
November 10, 2026 14:04
304ae57 to
dd99de3
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What and why
This combined documentation PR merges the documentation-only additions for iPhone Switch 2 measurements:
Ocarina of Time on an iPhone Duo (iPhone19,4, iOS 27.3) (
docs/reference/memory.mdanddocs/agents/symptoms.md): records the bring-up measurements to the first 3D load docked, detailing the GPU memory footprint when raw global memory tables cause pools to become resident (~8.1 GB allocated) and theSubmissionsIgnoredfail-stop that follows.Donkey Kong Bananza on iPhone 17 Pro Max (
040074A01BF12000) (dm/games/040074A01BF12000/README.md): records measured gameplay window performance on a physical iPhone 17 Pro Max (A19 Pro, iOS 27.2) under#iphone-measurements, added beside main's community iOS report.Commits:
dd99de33: Donkey Kong Bananza on an iPhone 17 Pro Max: what was measured and what was not, in the game note76fd3c24: Reference: what a Switch 2 game's first 3D load does to an iPhone's GPU memory (Ocarina of Time on an iPhone Duo)Checked
This is a documentation-only change: no code, binaries, ROMs, keys, or CI-scoped engine tools were modified.
python3 dm/tools/tests/test_docs.py(OK);python3 dm/tools/docs_symptoms.py(symptoms verified)040074A01BF12000), version not stated; Ocarina of Time, title ID and version not stated. What was played and for how long is not stated beyond the notes' own measurements.Front ends
None: no front end has to act on this.
Docs
docs/reference/<subsystem>.mdentry, andpython3 dm/tools/docs_symptoms.pywas run (the symptom index)dmsh_chain.py --headerwas run anddm/gfx/nvn/dmsh_chain.his part of the change. Not applicable: no chain tool changed