Some checks failed
wai-quantum for JavaScript / does this change touch it (push) Successful in 10s
WAI Studio / does this change touch it (push) Successful in 25s
wai-quantum studio and desktop / does this change touch it (push) Successful in 25s
WAI breaking changes and the conformance runner / WAI breaking · does this change touch WAI (push) Successful in 10s
wai-quantum energy-landscape jobs / does this change touch it (push) Successful in 10s
wai-quantum studio and desktop / desktop app · macos (push) Successful in 5m28s
WAI Studio / the catalogue's actions, the unit tests and the core · linux (push) Successful in 1m16s
WAI breaking changes and the conformance runner / WAI breaking · wire, record and API against main · linux (push) Successful in 37s
wai-quantum for JavaScript / javascript · linux (push) Successful in 5m41s
wai-quantum studio and desktop / desktop app · windows (push) Successful in 10m17s
wai-quantum energy-landscape jobs / the same bits · macos (push) Successful in 5m58s
wai-quantum energy-landscape jobs / native against WebAssembly, over many seeds (push) Successful in 4m55s
wai-quantum studio and desktop / studio · browser (push) Successful in 6m33s
WAI Studio / Studio in Chromium and Firefox · macos (push) Successful in 11m26s
wai-quantum studio and desktop / desktop app · linux (push) Successful in 6m37s
WAI breaking changes and the conformance runner / WAI breaking and conform · their tests, and the independent verifiers through wai conform · linux (push) Successful in 7m10s
wai-quantum energy-landscape jobs / reader, kernels, answers and the stated result · linux, release (push) Successful in 12m1s
WAI Studio / Studio in WebKit · linux (push) Successful in 14m7s
wai-quantum energy-landscape jobs / the module under wasm32-wasip2 (wasmtime) (push) Successful in 14m25s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (push) Has been cancelled
wai-quantum energy-landscape jobs / the same bits · linux-arm64 (push) Has been cancelled
The composing page now computes two capabilities that so far ran only natively, in WebAssembly, from the wai-rs decoders compiled to wasm32 (the compose feature gains wai/field_int and wai/splat_exact; nothing is written again in JavaScript): - src/compose_stage.rs: ComposedField, a wai.field.int_grid base and its wai.field.int_refine levels (int_field::FieldStages under staged-delivery §4.1, a hold bound of zero), rendered at the field's own view after every stage, its render work limited before it renders; ComposedStage, staged::StageSink with the side planes a wai.image.int_cond_refine layer reads held by the page: PNG pictures through an envelope's capability or its fallback, splat sets through wai.splat.int_codec with the parameter set the page holds, and a render entry's frame rendered in the page by wai-splat-render:i1; composeSide, the side planes a layer names. - compose.js: a field is presented as the picture and a picture of an image component decoded in the tab, each held to its signed digest. A piece whose base has layers presents the base, then takes each layer as it arrives: checked against its entry, the next stage computed in WebAssembly, held to the stage hash its entry states, then presented. A side object is held as a plane only where the page decodes it under the profile, its bytes pass their entry's checks and its output holds its digest. A layer refused anywhere (side-absent, side-not-exact, layer-gap, object-hash, prefix-digest) leaves the stage below presented, and the page says why. The dispatch record lists each piece's layers; the field and the side objects route wasm, never asked of the user agent, and the refinement capabilities are in the report's wasm leg. - compose/staged/: four packages sealed with the package's key from objects of volumetric-conformance/fields/ and staged-conformance/cond/, byte for byte, every prefix digest computed natively and held to the corpus's statement; the native tests (compose_stage::) require the committed bytes and replay both corpora through the bindings' pure half. - run.mjs: the staged cases (--only staged runs them alone), held to the corpora and the signed entries: each field renders to its scene's frame digest, read back from the canvas; each level, held back in delivery and released one at a time, presents its stage hash before the next is asked for; a wrong signed stage digest, a flipped level, a withheld or flipped side object, the splat decoder left out of the profile and a plane held only through its fallback are each refused with their code, the stage below presented. - browser-sink §14: the field in the layers table, the dispatch rule for fields, layers and side objects, the dispatch record's layers, the new §14.5 Refinement layers, the staged packages (§14.7) and their conformance (§14.8). - CI: wai-web-wasm.yml runs compose_stage:: natively and triggers on volumetric-conformance/; its native test count is 38, which main already has. Co-Authored-By: Claude Opus 5.5 <[email protected]>
3.8 KiB
3.8 KiB
The composing page computes fields and conditioned refinements in WebAssembly
wai-webcomposebundle (src/compose_stage.rs, withwai/field_intandwai/splat_exactadded to the feature):ComposedField, awai.field.int_gridbase and thewai.field.int_refinelevels offered to it,wai::int_field::FieldStagesunder staged-delivery §4.1 with a hold bound of zero, rendered at the field's own view after every stage, with a render-work limit checked before anything is rendered (cost_over_limit);ComposedStage,wai::staged::StageSinkwith the side planes awai.image.int_cond_refinelayer reads held by the page: pictures decoded fromwai.image.pngthrough an envelope's capability or its fallback, splat sets decoded throughwai.splat.int_codecwith the parameter set the page holds, and a render entry's frame rendered in the page bywai-splat-render:i1at its pose;composeSide, the side planes a layer names. The decode, the levels, the network, the residual, the render and every check are wai-rs's, compiled to wasm32; nothing is written a second time in JavaScript.compose.js: a field is presented as the picture, rendered in the tab at the view its payload pins, and a picture of an image component is decoded in the tab, each held to its signed digest first. A piece whose base has layers presents the base, then takes each layer as it arrives: checked against its entry, its next stage computed in WebAssembly, held to the stage hash its entry states, and only then presented. A conditioned layer's side planes come from the piece's asset entries: an object is held as a plane only where the page decodes it under the device's profile, its bytes pass their entry's checks and its output holds its digest. A layer refused anywhere (side-absent,side-not-exact,layer-gap,object-hash,prefix-digestand the rest) leaves the stage below presented, and the page says why. The dispatch record lists each piece's layers with their outcome, reason, stage, stage hash and the side planes each read. A field and the side objects routewasmand are never put to the user agent (platform-decode maps none of them); the refinement capabilities the page applies are in the report'swasmleg.compose/staged/: four packages of one image component each (fields,fields-digest,cond,cond-not-exact), sealed with the package's key from objects ofvolumetric-conformance/fields/andstaged-conformance/cond/, byte for byte, each entry's prefix digest computed natively and held to the corpus's statement; the native tests require the committed bytes.run.mjsadds the staged cases (--only stagedruns them alone): every field renders to its scene's frame digest, read back from the canvas; with each level's delivery held back and released one at a time, the coarse field is presented before its first level is asked for and every stage before the next level; a stage whose signed digest is another's, a level with a byte flipped, a side object withheld or flipped, the splat decoder left out of the profile, and a plane held only through its fallback are each refused with their code and the stage below presented.- browser-sink §14: the layers table names
wai.field.int_grid; §14.3 the rule for the field, its levels, the conditioned layer and its side objects, and the dispatch record'slayers; §14.4 the field's and the picture's digests; a new §14.5, Refinement layers, what the page computes and checks for each layer, in order; §14.7 the staged packages; §14.8 their conformance. The former §14.5 to §14.7 are now §14.6 to §14.8. - CI:
wai-web-wasm.ymlruns the compose bundle's native tests (compose_stage::), and triggers onwai/volumetric-conformance/.