Measured finding
Ordinary group-opacity source controls found while verifying #135
already depart from Chromium on the pre-rung fd4097f2 build. This is not a
regression from its byte-255 restore correction: the retained pre-rung binary,
evidence-only 7d42ab20 binary and corrected consumer produce identical PNG
bytes for every successful output in the 24-source matrix (both admissions).
Measured on CPU N32 raster, macOS arm64, Rust 1.92.0 / Skia 0.99.0, against
twice-deterministic Chromium 149.0.7827.55 captures through the repository's
unchanged hash-pinned capture module and probe harness. These are measured,
not celled. No new tolerance, oracle replacement, conformance score or FLIP
change is proposed.
| Source inside ordinary opacity group |
Opacity .999 |
Opacity .998 |
| Circle with Gaussian blur sigma 4, unrotated |
25 differing pixels, maximum channel delta 3 |
25 pixels, maximum delta 2 |
| Circle with repeating pattern, unrotated |
1 pixel, maximum delta 1 |
1 pixel, maximum delta 1 |
| Circle with radial ramp, rotated 15 degrees |
1,312 pixels, maximum delta 1 |
1,307 pixels, maximum delta 1 |
Strict accepts these sources without a named departure; best effort gives
the same image without degradation. Neighboring ordinary circle, ellipse,
curved path, round stroke, curved clip and admitted alpha-mask controls are
exact. Rotated pattern/mask and small-kernel blur controls separately reach
their existing stable refusal names before and after the correction.
Retained blur reproduction
This is the exact retained source, not a claimed minimal reduction. Unused
definitions are intentionally retained; deleting them has not been measured.
<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64"><defs><radialGradient id="rg"><stop stop-color="#d76843"/><stop offset="1" stop-color="#5bace1" stop-opacity=".4"/></radialGradient><pattern id="p" width="8" height="8" patternUnits="userSpaceOnUse"><rect width="4" height="8" fill="#d76843"/><rect x="4" width="4" height="8" fill="#5bace1" fill-opacity=".6"/></pattern><clipPath id="c"><circle cx="30" cy="30" r="22"/></clipPath><mask id="m" maskUnits="userSpaceOnUse" x="0" y="0" width="64" height="64"><rect width="64" height="64" fill="white" fill-opacity=".7"/></mask><filter id="f" x="-30%" y="-30%" width="160%" height="160%"><feGaussianBlur stdDeviation="4"/></filter></defs><rect width="64" height="64" fill="#426589"/><g opacity=".999" transform="translate(0 0)"><g filter="url(#f)"><circle cx="30" cy="30" r="20" fill="#d76843"/></g><rect x="38" y="34" width="18" height="20" fill="#5bace1" fill-opacity=".6"/></g></svg>
Changing the group opacity to .998 gives the other measured blur control.
For the pattern pair, replace only the filtered-circle group with
<circle cx="30" cy="30" r="24" fill="url(#p)"/>. For the radial pair,
use <circle cx="30" cy="30" r="24" fill="url(#rg)"/>, change the outer
transform to rotate(15 32 32), and change the unused blur definition back
to stdDeviation="1"; those are the measured matrix sources.
Render the source through cargo run -p n0_cli --bin n0 -- input.svg out.png 64x64 --strict and without --strict. Capture via the
probe harness,
not a separate browser recipe. Capture-module SHA-256:
069296201718c43d29efe356fbea893781b73250dca51de3b6d47468d74027b0.
Retained pre-rung CLI SHA-256:
0c134a4192100693b30c6620e220985c31c07123740716f8b24fc5a6b97d7d5f.
Follow-up work
- Minimize each source with exact measured pairs; compare with no opacity
before assigning causality to opacity, source materialization or a backend.
- Determine whether an existing ratified cell-local ramp/arc precision rule
actually applies. A small delta alone is not justification for tolerance.
- Fix true semantic departures or quarantine them by a stable name in both
admissions; reassess the affected feature row if its grammar has a gap.
- Add discriminating Chromium cells through
just add, bake without
overwriting, and prove gate sensitivity.
Keep this separate from the bounded authored-blending profile and from
#87, #88 and #93; no common cause
with those issues has been established.
Both opacity checklist rows and <radialGradient> are currently ticked.
Pre-existence establishes no regression from the B1 correction, not that
those obligations are unaffected. Cause and tick ownership remain unresolved;
if attribution proves a closed-row defect, its repair/refusal and tick
disposition must follow. No additional B1 production change or new tolerance
is justified by these still-unclassified measurements alone.
Measured finding
Ordinary group-opacity source controls found while verifying #135
already depart from Chromium on the pre-rung
fd4097f2build. This is not aregression from its byte-255 restore correction: the retained pre-rung binary,
evidence-only
7d42ab20binary and corrected consumer produce identical PNGbytes for every successful output in the 24-source matrix (both admissions).
Measured on CPU N32 raster, macOS arm64, Rust 1.92.0 / Skia 0.99.0, against
twice-deterministic Chromium 149.0.7827.55 captures through the repository's
unchanged hash-pinned capture module and probe harness. These are measured,
not celled. No new tolerance, oracle replacement, conformance score or FLIP
change is proposed.
Strict accepts these sources without a named departure; best effort gives
the same image without degradation. Neighboring ordinary circle, ellipse,
curved path, round stroke, curved clip and admitted alpha-mask controls are
exact. Rotated pattern/mask and small-kernel blur controls separately reach
their existing stable refusal names before and after the correction.
Retained blur reproduction
This is the exact retained source, not a claimed minimal reduction. Unused
definitions are intentionally retained; deleting them has not been measured.
Changing the group opacity to
.998gives the other measured blur control.For the pattern pair, replace only the filtered-circle group with
<circle cx="30" cy="30" r="24" fill="url(#p)"/>. For the radial pair,use
<circle cx="30" cy="30" r="24" fill="url(#rg)"/>, change the outertransform to
rotate(15 32 32), and change the unused blur definition backto
stdDeviation="1"; those are the measured matrix sources.Render the source through
cargo run -p n0_cli --bin n0 -- input.svg out.png 64x64 --strictand without--strict. Capture via theprobe harness,
not a separate browser recipe. Capture-module SHA-256:
069296201718c43d29efe356fbea893781b73250dca51de3b6d47468d74027b0.Retained pre-rung CLI SHA-256:
0c134a4192100693b30c6620e220985c31c07123740716f8b24fc5a6b97d7d5f.Follow-up work
before assigning causality to opacity, source materialization or a backend.
actually applies. A small delta alone is not justification for tolerance.
admissions; reassess the affected feature row if its grammar has a gap.
just add, bake withoutoverwriting, and prove gate sensitivity.
Keep this separate from the bounded authored-blending profile and from
#87, #88 and #93; no common cause
with those issues has been established.
Both opacity checklist rows and
<radialGradient>are currently ticked.Pre-existence establishes no regression from the B1 correction, not that
those obligations are unaffected. Cause and tick ownership remain unresolved;
if attribution proves a closed-row defect, its repair/refusal and tick
disposition must follow. No additional B1 production change or new tolerance
is justified by these still-unclassified measurements alone.