Repository navigation
Conversation
…ecorded in a sweep of 33 areas and in long play on an M3 Max (not measured on main) 166 pipelines behind the task shader a5288d0a6c4971fd_b and 5 behind three others (b43c34b2a11c2142_b, efaa4fa6a80ba719_b, 2d3240242e2ec411_b); 335 M rows in all. A task / mesh pipeline that no list names is compiled at its first draw (Native mesh pipelines compiled at their first draw). These were recorded on v131072 by a fork whose host writes the same rows (the key without the border field, the length of main's 164 M rows) as it built them. One of them, task a5288d0a6c4971fd / mesh 53dc93ba404ae78c / pixel 1ac5c1ed2feed1bc, froze adult Zora's Domain for 824 ms at its first draw on that fork. Checked against main: every row parses with pso_mesh_skey_parse and is byte for byte its normalized form; none is on main already or repeats another (task key and normalized key compared); every task, mesh and pixel key is in shader_map.tsv with that stage; none is among PR seedds#2280's 15 rows. Tests: test_docs, test_game_profile, test_pso_offline, test_nsp_incremental; t_pso_skey and t_shmap_warm (make -C dm/gfx/tests GAME=0400486024DEC000); the Mac host builds. Not run: a game on main, so neither the stalls the rows avoid nor the prepare step's added time is measured (PR seedds#2083's 41 rows added about 2 s on an M4 Pro); iOS.
neko973
added a commit
to neko973/nxnative
that referenced
this pull request
Nov 12, 2026
…ull request seedds#2324 that it lacked (data only) Recorded by dean0396 in a sweep of 33 areas and in long play; the list here held 74 of that pull request's 171 already. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
2 of 3 tasks
5 tasks
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
On main, Ocarina of Time compiles a native task / mesh pipeline at its first draw when no prewarm list names it (Native mesh pipelines compiled at their first draw). This PR adds 171
Mrows that main'spso_manifest.tsvdoesn't have. It changes data only.a5288d0a6c4971fd_b. The other 5 are behindb43c34b2a11c2142_b(2),efaa4fa6a80ba719_b(2) and2d3240242e2ec411_b(1).Mrows: the key without the border field, 1,008 hex characters, like main's 164 rows. The fork'spso_skeylayout is main's minus the two border words at the end.a5288d0a6c4971fd, mesh53dc93ba404ae78c, pixel1ac5c1ed2feed1bc) froze adult Zora's Domain for 824 ms at its first draw on that fork. The fork builds mesh pipelines differently from main, so that number doesn't carry over to main.#line goes after the existing header lines. The game note's count goes from 164 to 335Mrows.S,RorCrows. The fork's lists have many more that main lacks, but a longer list lengthens a cold first start's prepare step (Ocarina of Time prewarm rows recorded on an iPhone 18 Pro Max (from HookLink) #2017 notes that the 9,789-row list from PR 1488 prepared 16 s longer on a MacBook and avoided little).Overlapping PRs:
Mrows from a MacBook M1). 14 of its 15 rows are in my recordings too. I left them to that PR, so the two don't share a row. Both append at the end of the file, so whichever lands second needs a trivial rebase. It also changes the same count in the game note.Mrows: these 171 add one to the 8 that main's rows use (it keeps up to 16).warm_parseskips a line it has already seen).Checked
nvn_pso_skey.hand a script that reads main'sshader_map.tsvthe wayshmap_readdoes:pso_mesh_skey_parse;shader_map.tsvwith stagetask,meshandpixel, and none has two stages there;adv_dst_freebit (0 in these rows) doesn't change their meaning;python -m unittestondm/tools/tests/test_docs.py,test_game_profile.py,test_pso_offline.pyandtest_nsp_incremental.py;t_pso_skeyandt_shmap_warm, frommake -C dm/gfx/tests GAME=0400486024DEC000;t_shmap_warm,test_pso_offlineandtest_nsp_incrementalwrite their own lists), so the row checks above are what checks the data. The rest of the GPU suite wasn't run: nothing here is code.main0_out&has no address space qualifier #2272), so I couldn't do a cold first start. Main's newer 8fb5ffe makes thethread main0_out&change that Ocarina of Time (0400486024DEC000 v131072, Mac): 22,296 shaders fail to compile in Metal since 0662f9d, dm_blend0'smain0_out&has no address space qualifier #2272 asks for, but I haven't rebuilt the shaders with it. That means neither the stalls these rows avoid nor the prepare step's added time is measured. For a sense of the cost: Ocarina of Time's prewarm list gets 41 more task / mesh pipelines from later play #2083's 41 rows added about 2 s to the prepare step on an M4 Pro. If it scales, 171 rows could add 8 to 9 s to a cold first start. I'd rather someone who can run main measured that before this is taken.mesh_notask) against the built library while it prewarms, and skips a row that doesn't fit. 70 of the 104 mesh shaders here aren't in main's current rows. iOS wasn't checked either.regress.py check: not run. Only Ocarina of Time's list changes, and no code does.Docs
Mrow count under "Found on this game"). No reference entry or symptom index change.