Repository navigation
0400486024DEC000's prewarm list: 84 task / mesh pipelines and 1,806 rows from 18 areas - #2466
Open
roandegraaf wants to merge 1 commit into
Open
roandegraaf wants to merge 1 commit into
roandegraaf wants to merge 1 commit into
Conversation
…8 areas of a save, a first frame mark before its first-looks rows, and 1,806 shader and pipeline rows from the same areas after it A sweep over 18 areas of a save on an M4 Pro, started with no M rows, built 62 task / mesh pipelines at their draws in the first area and 0-14 in each later one as its own list grew; of the 246 it recorded, 84 are not among the list's 164. With all 248 prepared before the first frame, four of the areas checked built none at a draw. The #@after_first_frame line goes after every M row and before the 4,959 first-looks rows, and the sweep's 1,806 S / R / C rows no other row names go at the end. A host that does not know the mark reads it as a comment (warm_parse skips # lines) and builds every row before the first frame. Every key the rows name is in the shader map; no row twice. - dm/games/0400486024DEC000/pso_manifest.tsv: the rows and the header's block lines - dm/tools/tests/test_pso_manifest.py: every shipped list's rows parse and hold at most one mark; 0400486024DEC000's has no row twice, its keys in its shader map, the mark present after every M row (fails without the change) - docs/reference/shaders.md (Native mesh pipelines compiled at their first draw: the sweep's measurement), the game note
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
Symptom. On
0400486024DEC000, entering an area for the first time still builds pipelines at their first draw: task / mesh pipelines have no stand-in while they build, so each one stalls the frame, and render pipelines the list does not name are built in play. Testers report hitches at area entry that line up with pipeline compiles.Change. Data and a test, no host code.
pso_manifest.tsv: a sweep over 18 areas of a save on an M4 Pro, started with noMrows, built 62 task / mesh pipelines at their draws in the first area and 0-14 in each later one. Of the 246 it recorded, 84 are not among the list's 164; they go with the otherMrows. With all 248 prepared before the first frame, four of the areas checked built none at a draw. The sweep's 1,806S/R/Crows that no other row names go at the end.#@after_first_frameline after everyMrow and before the 4,959 first-looks rows. Main's host reads it as a comment (warm_parseskips#lines), so on main every row is still built before the first frame; a host that implements the mark can build the rows after it in the background.dm/tools/tests/test_pso_manifest.py(new): every shipped list's rows parse and hold at most one mark; this profile's list has no row twice, every key it names is in its shader map, and everyMrow comes before the mark.docs/reference/shaders.md(Native mesh pipelines compiled at their first draw) and the game note.Overlap. 70 of the 84 new
Mrows are also in #2324, and 2 in #2280. Whichever lands second should drop its duplicates;test_no_row_twicecatches them.Checked
python3 -m pytest dm/tools/tests/test_pso_manifest.py dm/tools/tests/test_docs.py(11 passed) on this branch.0400486024DEC000v131072, the 18-area sweep on an M4 Pro, on an older host that implements the mark.Not checked / open.
Docs
docs/reference/shaders.mdentry (no new entry, so the symptom index is unchanged)