Skip to content

On iOS the first GPU out-of-memory failure ends the game: an iPad Pro went down whole two failures into Ocarina of Time's 8,523 of 8,192 MB - #1486

Open
aksmith-git wants to merge 1 commit into
seedds:mainfrom
aksmith-git:pr/ios-gpu-oom
Open

aksmith-git wants to merge 1 commit into
seedds:mainfrom
aksmith-git:pr/ios-gpu-oom

Conversation

@aksmith-git

@aksmith-git aksmith-git commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

What and why

res_top_once (nvn_mtl.m) ends the process after 32 Insufficient Memory command buffer failures within a minute (Repeated GPU out-of-memory failures end the game). An iPad does not get that far. On an iPad Pro (iPad17,3, M5, iOS 27), Ocarina of Time (0400486024DEC000 v131072) logged the report at its first failure:

[RED] GPU out of memory: the residency set holds 9476 objects, 8523 MB (Metal's recommended working set 8192 MB, GPU allocated 8704 MB): textures 5115, 3213 MB; ...

One more command buffer failed, and then the whole device went down. The log stops there. In another run on the same iPad the game went on after three failures, with pink or broken frames that took 120-600 ms of GPU each, and did not recover.

On iOS the first failure now ends the game, after that report. The Mac is unchanged: the process ends at the 33rd failure within a minute, as before.

This is a stop, not a fix: what fills the working set is #1436, and #1484 takes 334 MB out of it. #1391's guard deliberately sets no stop level on iOS. This change acts only once Metal has already refused a command buffer.

Checked

  • make -C dm/host GAME=0400486024DEC000 dmhost builds on main 0f510fd; dm/ios/tools/compile_check.py (261 files for the iPhone SDK, 0 failed); test_docs.py.
  • Games run: the same change was in our iPad builds of Ocarina of Time since the run above, and none of their later runs hit a GPU out-of-memory failure. So the iOS stop itself has not been seen to fire.
  • regress.py not run: the Mac path is unchanged.

Docs

  • The reference entry's Fix and Found on say what iOS does (symptom index regenerated, no change)
  • No game files, keys or data extracted from a game in the change

@github-actions github-actions Bot added nvn NVN on Metal and its tests (dm/gfx/nvn, dm/gfx/tests) docs Documentation labels Nov 6, 2026
… went down whole two failures into Ocarina of Time's 8,523 of 8,192 MB

res_top_once ended the process after 32 Insufficient Memory failures within a
minute. On an iPad Pro (M5, iOS 27) Ocarina of Time logged the residency report
(8,523 MB against Metal's 8,192 MB working set), failed one more command buffer,
and the whole device went down: the log stops there. A run that went on drew
pink or broken frames of 120-600 ms of GPU each. On iOS the first failure now
ends the game, after the report; the Mac keeps its 32 (the process ends at the
33rd, as before).
john62036203-ops added a commit to john62036203-ops/NXNativeWindows that referenced this pull request Nov 6, 2026
… the game)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013SzykpcKm2eZPvPjGPKx1C
brad-n added a commit to brad-n/TVPort that referenced this pull request Nov 9, 2026
… RG11B10F non-finite clamp (white bloom), seedds#1876, DM_NVN_LEDGER
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Documentation nvn NVN on Metal and its tests (dm/gfx/nvn, dm/gfx/tests)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant