Skip to content

Breath of the Wild (01007EF00011E000, 1.9.0, M4): GPU hang at frame 1344 -> Metal 4 queue dies, GPU access revoked, host exits 70 #2321

Open

Description

@v-pun215

What happened

The Mac app built from commit 7ef83394a9ae (shader chain b8856126d238) hung the GPU at fence 1344 / frame 1344, 26.25 s into an outdoors session. The first [RED] line is:

[dm] [nvn-mtl] [RED] segment command buffer execution error: Error Domain=MTL4CommandQueueErrorDomain Code=1 "(null)" ...
    "Error Domain=MTL4CommandQueueErrorDomain Code=1 \"Caused GPU Hang Error (00000003:kIOGPUCommandBufferCallbackErrorHang)\" ..."
[dm] [nvn-mtl] [RED] game shaders of failed command buffer #1 (fence 1344, segment 9): 195: ...

The app recovered from the first hang and kept running. More hangs followed at fences 3962 (frame 3961, 71.43 s), 4916 (frame 4915, 87.82 s) and 5128 (frame 5127, 91.49 s). At fence 5197 macOS revoked GPU access:

[dm] [nvn-mtl] [RED] GPU access revoked: the segment command buffer was ignored (fences back 5197 of 5197); macOS runs none of this process's GPU work any more, so the game stops

Subsequent submissions were ignored (MTL4CommandQueueErrorDomain Code=5 ... SubmissionsIgnored), and the host exited with 70 at about 130.8 s. The same app and save ran for 540.98 s (frame 30156) in the previous run with no [RED] line and exited 0, so the hang is intermittent.

Failed command buffer and shaders

The log has no [RED] pipelines of the failed submission line. I checked the 195 shader IDs in the failed command buffer: none is a5288d0a6c4971fd (the Hi-Z task named in #1986) or the OoT culling tasks f75708d1, 99280b7b or 47f9b384. The full list follows; the first 12 are the ones printed at the start of the log line.

195 shader IDs in failed command buffer #1 (fence 1344, segment 9)
5d734ce6c886f64a_b be431d4319d4cb1d_b 6ecc2d6a182ad7dd_b 7636e1d2542c221a_b 24547fd07e9978c8_b eadbb36f187df11e_b 277908ddcf1cd871_b 8110c74078548172_b 1e684a187106ac96_b addc8774ebbb510c_b 6f39e369e950316c_b 1b7a33a867bfa797_b
086b379c93199826_b 001b98741aa774e4_b 9f8116baffddaf81_b d272673fa0dc7d90_b 44eaaffc61ff121e_b d99ba4681a60810b_b 2eb553c8f12927f8_b f40c4929c6ef8ec9_b d179daf9fbacb315_b cf6b80c2a57f937d_b beb428a8853e5ef9_b 8f9487a6a313fbd2_b
e05829abca44dbcc_b 5208ef45f36a50fc_b da442d1222dd1e7e_b cb7aa79d96c59789_b 21969d29f86ab7be_b bd688a3820298f2e_b 3ca0a8c0b7758868_b e92dd770252e8d9e_b b46a1985513a7cd8_b 079d1e6466801b7a_b c5d526e99f6f537e_b 5d62ce83b302374e_b
5f1b1b73d8b8b326_b 7fefba657e5da22c_b d3161d10c1b08baf_b d33af2c5fb2e266e_b 6d5424d607f6afae_b 95a2a63b3de792d6_b bc9aae0b08b1c365_b 32bc50a8e48c3f6d_b df8315a0b81affd4_b 2fa96d084e04cb93_b 1a6f4a3ab72724f5_b 3620dcaa6b621533_b
28ad2230fe4c00fb_b 2545c3c71bbc0a52_b 66dd5d08e0c39a24_b 0eeb23f2b287a638_b ad3924672b07c43c_b d54a8cbdf38d195e_b 7ccc2e7cf4055f14_b 5d762fb186acc7d8_b 48c4edb4f4cdd5ef_b 704a04d82662ce74_b 39f65e9cfe7edfaf_b 1f037afbe71a66f4_b
5ee9a682fff60855_b 7a8bb7784aec9536_b ac99bb1667b06e86_b 856f033fbc37a26d_b f7ea945dbac0579d_b 5ffc3451b2d06882_b eb632c70d526060f_b 20ae44e221518f45_b f27af687e2935fd7_b 454381adb20491c5_b 6a72b495c70ac26e_b 43f916789d5b7320_b
f849afce4f8e7e5e_b 90c5ef101b9a5516_b 3cee8b4f825e4331_b 384597a04ae3928e_b 2ab6c9fadc7f8cb4_b db83736dedaf3583_b 84a5a96c5a30fc35_b e625b3e815831f59_b 9f388fc68e2261be_b 0d4744d002dc328e_b 9c2deb30bb42217b_b 2f69fdec6571dd4d_b
f28b55aba88a35cb_b c8c1fe5a15b9fa03_b d11575ff2e305a68_b 383e3753312d0b76_b d86c02cce0f8d260_b 2decd3e894b3736a_b 26ae1640f3448ba4_b 7ea7d3e914735904_b 397181806d57273a_b cd3b9fa05dadf490_b 22ce08f5120c119c_b 564fe0a839f946dd_b
72941205d99bb7a3_b 4eaf2408e4c8596a_b aafe364101139e6e_b 2cf39271f4d646f8_b 8d134cad506585b9_b a7efffcddd089278_b 659032f68bb0e30d_b d2fb4bd6fb340d1e_b ac4b811e870fdef3_b c1f48d6ceebf3b78_b 517e82830ff49920_b 753d0169ae3ce4f0_b
0224fecce6565477_b 008308c18fc89a42_b 941ca7d1a0b14b21_b 1632735280019270_b c14269696ff0e3af_b be94925969ecc752_b 5e6a5ab088691322_b 68eb5f55a5fa652a_b ce0c19a1911771bb_b a955215fd7fc6ba7_b ee4dab80bbe5e413_b 182564512706efcd_b
a5028cc3ebfa7f93_b 40148ccf6589f1fe_b 89b5d2d419727eb6_b 493bedce659bee0c_b b6326c3608635ad7_b f1f2ae521bb8f5f3_b 37285644b942f8b9_b 8a63a367b87b9274_b 64d312b0d06839ca_b e339df4470784679_b 8b570d96d97c0d7e_b 9608cd24a8df4447_b
c6d5234c180170d1_b 0d2aee23b1e5eeec_b cfbcfd95899ad0c3_b fd374d26e6e1e536_b 23b6c6e283918c63_b cff15d8a730ad03f_b 369639ac7b3d0d8e_b ca3d9147d76aba76_b 0610da4424c4aa56_b 8ed0c21be148db06_b 6f8fe890a099ffbb_b bf01060d276318e4_b
99d87736df92ee5f_b 4d96c21688181ae8_b b2c0cfbcd9722ace_b f84705cb4c5a46b8_b 58606cb67cb94e6d_b 9e3695f3be7ebcfa_b b66b01d18fa1cc68_b ac0c76fce8a83e1e_b 5204a15fbd8ab722_b 609cbe5377e00a95_b 9a5745d88020d45d_b b1e01edade0bd0d5_b
07ac3463619dd128_b 0f7aaa23ccf83d6d_b 8862248320f4773c_b 538a610a64022c13_b 3e8567da37eb28a1_b 9f3b0e226fab513c_b e8faa1fec0addc73_b 1d13b774d380b2b7_b aa6d7735705bd874_b 9c5a03dd0b90c184_b 9c050c8db22eff85_b 4c3a1fbbdd03f5c9_b
12fb12dffd5dd4dc_b 2ecd1e198c1a5436_b ec8808d84232a8f2_b 3f2b6cc157d99bbe_b 8cb27a9b8593ccdc_b 76cf03d273289c36_b c96bc2b6ef39b78c_b a6d5928a7271fcab_b 38f7c8a6efb59ccc_b 6748f89c4706052a_b 384eed1970193bcf_b 56c62f6ee218016d_b
121d5bca7b5cae39_b 80d619d3e53996ee_b f0108833511abdfa_b 78e80cf67d011b87_b 946f27c358300d80_b b39cd64b5fc6938f_b 0e83bd140fab73f0_b 5f0b8e25135cf5c0_b c27edf64261af5cb_b 4559e1b88e1bc914_b c580d44368bf10bc_b 640302f7b67c7bf5_b
141910f4f5933b1d_b 0fa0c472ede4737a_b f00d6091a1eb4542_b

Outdoor frame pacing in the same session

The run was mostly at 60 fps before the hang, but not GPU-limited: pre-crash GPU time was p50 13.1 ms / p95 18.6 ms, frame time p50 16.7 ms / p95 21.4 ms. At present 3300 (about 55 s) the frame step went hold 1 -> 2 vsyncs after three late frames, held 45 frames at 30 fps, then probed back at present 3345 and held at 60 at present 3435 (log: CPU 93% on performance cores). The 300-frame window ending at frame 3600 had p95/p99 about 33.4 ms. The 96-100 ms longframes at frames 1344, 3962, 4916 and 5128 coincide with the GPU hangs; frame 1853 was a separate 131.9 ms hitch with 14.3 ms GPU and no new pipelines. The previous run also had 30 fps stretches outdoors (for example, frame 28800: p50 33.27 / p95 50.24 ms), so the frame pacing issue is reproducible separately from the hang.

What I expected

No GPU hang or GPU-access revocation; the app's 60 fps frame step (or a stable 30 fps) without the 96-100 ms hitches.

Game, title ID and version

The Legend of Zelda: Breath of the Wild, 01007EF00011E000, 1.9.0 (v1114112).

nxnative commit

7ef83394a9ae (read from the app's Info.plist). The collector checkout was 79741184; that is not the build that ran.

Shader chain version

b8856126d238 (app bundle Contents/Resources/msl/b-b8856126d238.img).

How it was built and run

Mac app (--platform mac-app), app at /Applications/The Legend of Zelda - Breath of the Wild.app, launched with DM_LAUNCHER=0 (no settings window).

Device and OS

  • Mac16,10, Apple M4, 16 GB RAM
  • macOS 27.0 (26A428)
  • Xcode 27.2 (27B52); Apple metal version 32023.922 (metalfe-32023.922.4)

Settings and environment overrides

  • launcher.DM_FULLSCREEN = 1
  • launcher.DM_PRESENT_UPSCALE = metalfx
  • No player env.txt, no bundled env.txt
  • Display: 100 Hz; in fullscreen the app switched it to 60 Hz for 60 fps (front end: screen at 100 Hz switched to 60 Hz for 60 fps in fullscreen)
  • Game Mode is off: LSSupportsGameMode = false in Info.plist, and gamepolicyd logged Game mode disabled
  • Drawable 1280x720; output 1920x1080 (later 1920x1048)

Logs

The full bundle (report.md, this run's 266 KiB log and the previous 541 s log) is at ~/nxnative/nxnative-report-01007EF00011E000-2026-11-11.zip; it is the output of python3 scripts/bug_report.py "/Applications/The Legend of Zelda - Breath of the Wild.app" and contains no game files, saves, keys or shader archives. The GitHub CLI here only uploads images and videos, so I could not attach the zip from this terminal; the key [RED] lines and the failed shader list are inline above, and I can attach the zip in the web UI or paste more of the log on request.

Related issues

Steps to reproduce

  1. Build the Mac app from 7ef83394a9ae with shader chain b8856126d238 and the 1.9.0 update.
  2. Load the staged BOTW 1.6.0 save and play outdoors in fullscreen with MetalFX.
  3. In this run the first hang came at about 26 s; the previous run on the same app/save lasted 541 s and exited cleanly. I can repeat the route or run a candidate build.

I am happy to test a candidate fix, an isolation build, or a different render scale / window mode.

Activity

  1. added
    hostThe Horizon host: SVCs, services, threads, memory (dm/host)
    macThe Mac front end and app (dm/mac, front_mac.m)
    bugSomething isn't working
    on Nov 11, 2026
  2. v-pun215 commented on Nov 11, 2026

    @v-pun215
    Author

    For the failed-submission detail asked for in #1986: this log has no [RED] pipelines of the failed submission line. The line after the first failed command buffer is:

    [dm] [nvn-mtl] [RED] game shaders by failed/ran over 1 failed of 3318 command buffers: 07ac3463619dd128_b 1/19, 609cbe5377e00a95_b 1/38, 9a5745d88020d45d_b 1/50, b1e01edade0bd0d5_b 1/107, 5204a15fbd8ab722_b 1/144, ac0c76fce8a83e1e_b 1/144, 121d5bca7b5cae39_b 1/150, 56c62f6ee218016d_b 1/150, ac4b811e870fdef3_b 1/150, c1f48d6ceebf3b78_b 1/150, 21969d29f86ab7be_b 1/206, 079d1e6466801b7a_b 1/207, b46a1985513a7cd8_b 1/207, e05829abca44dbcc_b 1/217, 32bc50a8e48c3f6d_b 1/232, bc9aae0b08b1c365_b 1/232, cb7aa79d96c59789_b 1/239, bd688a3820298f2e_b 1/240, 5208ef45f36a50fc_b 1/252, 38f7c8a6efb59ccc_b 1/263, 76cf03d273289c36_b 1/263, a6d5928a7271fcab_b 1/263, c96bc2b6ef39b78c_b 1/263, 28ad2230fe4c00fb_b 1/303, 2fa96d084e04cb93_b 1/378, 2545c3c71bbc0a52_b 1/413, 4559e1b88e1bc914_b 1/421, c580d44368bf10bc_b 1/421, 141910f4f5933b1d_b 1/444, 640302f7b67c7bf5_b 1/444
    

    The final failure is failed command buffer #5 (fence 5197, segment 9): 234 shaders plus and 34 more; the full log has the list. The first 195-shader list is in the report above.

    The 110 KiB bug-report zip is ready locally; GitHub CLI only uploads images/videos, so it is not attached here. I can attach it from the web UI or paste more of the log on request.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinggame: 01007EF00011E000The Legend of Zelda: Breath of the WildhostThe Horizon host: SVCs, services, threads, memory (dm/host)macThe Mac front end and app (dm/mac, front_mac.m)

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions