Skip to content

game: Super Mario Odyssey's prewarm list from a whole playthrough - #2100

Open
JakePre wants to merge 1 commit into
seedds:mainfrom
JakePre:odyssey-prewarm-list
Open

JakePre wants to merge 1 commit into
seedds:mainfrom
JakePre:odyssey-prewarm-list

Conversation

@JakePre

@JakePre JakePre commented Nov 10, 2026

Copy link
Copy Markdown
Contributor

Super Mario Odyssey ships with an empty pso_manifest.tsv, so a new player's first start builds every pipeline at its first draw. This adds the list my Mac recorded over a playthrough of the whole game.

How it was recorded

  • Mac: M1 Pro MacBook Pro, game 1.4.1 (v393216).
  • No lists present: the bundled list was empty and this device had none, so everything was built on the spot and appended to pso_user.tsv, as docs/development.md asks.
  • When: between 29 October and 5 November, across several builds of main, some with my controller branches on top. Those branches change no shader or pipeline code.
  • What it covers: the whole game, not only the opening.

The list

  • Size: 26,678 rows: 17,825 shaders, 8,818 render and 35 compute pipelines. Every row is unique, and every shader key, including both shaders of each render pipeline, is in shader_map.tsv.
  • Left out: two rows of the recording, a geometry shader's kernel and its reader (653761faae9ece8c_bg1, _bgv), which the prewarm counts as "not in the shader map".
  • Order: the rest is the recording, unchanged and in recorded order.
  • Game note: a line under "Files and shaders" describes the list.

Measured, and not

  • Measured: the next start on that Mac prepared it as prewarm done: shaders 17825 / render pipelines 8817 … background time 71757.3 ms, with that device's own pipeline archive present.
  • Not measured: a first start on a cold Metal cache, and any iPhone start, with this list.

Size compared with other lists

Checked: test_docs, test_game_profile and test_pso_offline pass.

🤖 Generated with Claude Code

@github-actions github-actions Bot added docs Documentation game: 0100000000010000 Super Mario Odyssey labels Nov 10, 2026
Super Mario Odyssey: a prewarm seed list from a playthrough of the whole game, so a first start prepares its pipelines before the first frame instead of building them at their first draw

pso_manifest.tsv was header-only. The list is one player's pso_user.tsv, recorded on an M1 Pro MacBook Pro on 1.4.1 with no lists present, over the whole game: 26,678 rows (17,825 shaders, 8,818 render and 35 compute pipelines), every shader key in shader_map.tsv. Two rows were left out: a geometry shader's kernel and reader (_bg1, _bgv), which the prewarm counts as not in the shader map.

The next start on that Mac prepared it in 71.8 s of background time with its own archive present. A first start on a cold cache, and on an iPhone, has not been timed with it.

Checked: test_docs, test_game_profile, test_pso_offline.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@JakePre
JakePre force-pushed the odyssey-prewarm-list branch from d07764b to 63e056b Compare November 12, 2026 23:18
@JakePre JakePre changed the title Super Mario Odyssey: a prewarm seed list from a playthrough of the whole game game: Super Mario Odyssey's prewarm list from a whole playthrough Nov 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs Documentation game: 0100000000010000 Super Mario Odyssey

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant