From bb964ca2d48753691edc82ed08bf6dd99010f58e Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Mon, 14 Sep 2026 14:15:31 +0200 Subject: [PATCH] Record the second Cut 6b Soul pass and the row-indexer ruling Soul compiled step with dxc and found NaN gives 1, so the docs-based change is reverted to the compiler's behaviour. The shader mirror test only proved compilation and grows numeric comparison of every mirrored function. The operator keeps the ref row indexer without an analyzer and documents that writes through readonly, in, and property receivers land on a copy. Co-Authored-By: Claude Opus 5 --- docs/cultcache-migration-cut.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/docs/cultcache-migration-cut.md b/docs/cultcache-migration-cut.md index 9565c40b2..eeafdfdb4 100644 --- a/docs/cultcache-migration-cut.md +++ b/docs/cultcache-migration-cut.md @@ -53,6 +53,27 @@ them; add Studio drawers for the new CultMath types after the branch merges. The shader mirror is compile-checked with dxc (download approved). Line numbers below refer to the evidence base, not to the branch. +Cut 6b second Soul pass (after CultLib `10b2c15`): +- **Held:** + - numeric output unchanged over 400 samples; + - generator reruns byte-identical; + - swizzle setters write back; + - `sign` and `any`/`all` match dxc; + - no consumer serializes CultMath matrices. +- **Defects, fixes dispatched:** + - `step` on NaN followed the docs, but dxc lowers it to `x < e ? 0 : 1`, so it + reverts to the compiler's behaviour. The parity target is HLSL as dxc + compiles it. + - The shader mirror test proved only compilation. It gains numeric + comparison of every mirrored function, including ties and NaN. + - A stale cultmath bump in the Caching `package.json` conflicts with the + routing branch and is dropped. + - `get-dxc.ps1` is pinned with a hash. +- **Operator decision (2026-09-14):** the `ref` matrix row indexer stays, with + no analyzer. Writes through a readonly field, an `in` parameter, a property or + `identity` land on a defensive copy and are silently lost; design.md and the + indexer document this. + Evidence base: CultLib `main` at `c2a9a6e`; Aetheria `codex/aetheria-state-rebuild` at `82c1e72e`. Line numbers refer to those revisions (`CC:` is `src\GameCult.Caching\CultCache.cs`, `DMS:` is