Files
nxnative-easy/docs
seedds b3f25a09bb Shader chain: translator fixes for 39 shaders; compiled shaders cached by their Metal source
- Ryujinx (vendored, Instructions.cs GenerateTextureSample): texel offsets read from a
  register are built with OpCompositeConstruct + Offset, and a four-offset gather becomes
  four one-offset gathers. Upstream wrote an OpConstantComposite, invalid SPIR-V that
  SPIRV-Cross refused (2 shaders each in Wonder, Link's Awakening, TOTK, Age of Calamity).
- dmsh_xlate: a shader whose SPIR-V declares a 64-bit float is translated again with
  Ryujinx's DoubleToFloat pass (30 TOTK main-material vertex shaders); TOTK's
  visibility-counter vertex shader gets MacNativeGames' subgroup lowering (MIT).
  Every other shader's SPIR-V is byte-identical.
- New dm/gfx/tools/dmsh_mtlcache.py: dmsh_build.py compiles each MSL through a cache keyed
  by the source, the compile flags and the compiler (<cache>/cas/metallib/). Before a build
  it is filled from the earlier b-*/ folders beside the output and IOSOUT, and from
  DMSH_PREFILL, once a fresh compile of a few of a folder's shaders reproduces their
  libraries byte for byte. A chain change that leaves a shader's MSL unchanged no longer
  recompiles it.
- dmsh_build.py clones files with the clonefile call instead of one cp per file: each fork
  of the build process cost about 6 ms and serialized the finishing phase.
- TOTK's rebuild after the translator fix: 49 min -> 9 min, libraries byte-identical to
  the previous build apart from the 39 fixed shaders. All 12 chain versions are new;
  Dread, 13 Sentinels, Three Houses, TOTK and Wonder are rebuilt (Mac + iOS + c1_full.tsv),
  the other six follow.
2026-10-18 23:55:19 +08:00
..