Expand description
Mesh-output determinism manifest - the pipeline-level companion to the
kernel’s predicate sign manifest (ifc_lite_geometry::kernel::manifest).
Runs the full process_geometry pipeline over a small synthetic fixture
and FNV-1a-hashes the emitted wire bytes: per-mesh, in emit order, as three
separate hashes - positions_hash (position f32 bits), normals_hash
(normal f32 bits), and indices_origin_hash (express id, geometry class,
indices, origin f64 bits) - so the cross-target guard can assert positions
and topology byte-identical on every target while exempting only the curved
mesh’s normals for the libm trig gap. Plus the sorted flat_voids,
flat_material_colors
and flat_styles_rgba8 wire arrays. The resulting MeshManifest is
pinned in rust/processing/tests/manifests/mesh_determinism.json
(asserted on x86_64 AND arm64) and in its wasm32 pair (identical except
the documented libm-trig gap). The native test and the wasm-bindings
wasm-bindgen-test leg both call compute_mesh_manifest, so the fixture
and hashing cannot drift between targets.
Contract: docs/architecture/mesh-determinism.md.
Shared library code (not a test util feature) for the same reason the kernel manifest is: the wasm leg lives in a different crate and must run the exact same battery.
Structs§
- Mesh
Manifest - The pinned mesh-output determinism fingerprint.
- Mesh
Manifest Entry - Per-mesh manifest entry: enough to identify WHICH mesh diverged and how big it was, without committing the raw vertex data.
Constants§
- FIXTURE_
IFC - Synthetic determinism fixture (house rule: no client data). Exercises the wire surfaces the manifest pins:
Functions§
- compute_
mesh_ manifest - Compute the mesh-output determinism manifest over
FIXTURE_IFCatTessellationQuality::Medium(the byte-identity density). - diff_
report Noneif the manifests match; otherwise a human-readable report that identifies WHICH mesh diverged (index, express id, per-mesh hash), not just the top-level mismatch.