CNA-BUG-247: The EasyGL L7 policy and report justify zero tolerance with 'all 137 renderable assets' while the report's own fields record 140 captured, byte-identical assets

CNA snapshot 3b43bd86  ·  Known Issues › Current bugs  ·  source links pinned to 3b43bd86

✓

Evidence basis: source-verified at the pinned commit; tests exist (not executed for this page). Claims on this page were checked by reading the CNA source at commit 3b43bd86; unless a sentence says otherwise, nothing here was built or executed. Nothing on this page was executed unless the Evidence section says so.

The EasyGL L7 policy's justification, copied into its report, cites 137 renderable assets while the report records 148 assets, 140 byte-identical captures and 8 rejections.

Identifier
CNA-BUG-247
Category
Bug
Subsystem
Documentation & release tooling
Status
Open
Verified against
CNA 3b43bd86 (3b43bd8687ed46523d873f9bec4b32bd8481dcb5)
Severity
Low (a triage suggestion, not a project priority)
Evidence basis
Source-verified: read at TARGET, not executed
Tests touching this area
Yes: see Current tests
Affected contract
tests/gltf-l7/easygl-policy.json and docs/gltf-l7-corpus-report.json goldenComparison.justification (the OPENGLES3/EasyGL L7 tolerance rationale)

Expected behaviour

The hand-written rationale agrees with the machine fields it justifies, as docs/gltf-conformance.md does (“148 explicit EasyGL dispositions: 140 PNGs + 8 safe rejections”). The SOFTWARE policy phrases the same rationale without a count (“every renderable asset”).

Actual behaviour at TARGET

easygl-policy.json says two independent llvmpipe/EasyGL processes produced byte-identical PNGs “for all 137 renderable assets”; gltf-l7-corpus.py copies the policy's goldenComparison into the report, so gltf-l7-corpus-report.json carries the same sentence beside distinctAssetCount 148, capturedAssetCount 140 and rejectedAssetCount 8; its assets array has 140 capture dispositions, each with twoProcessPngByteIdentical: true, and 8 reject. A planning document that repeated “137 deterministic PNGs plus 8” was deleted on 2026-10-11 (96c6e77be). The figure 137 matches earlier campaign rows in plans/plan_gltf.md (GLTF-390, GLTF-471), which suggests the sentence was carried over rather than regenerated.

Source locations

Evidence

Checked by reading at 3b43bd86 (the JSON files were parsed to count dispositions; no capture was run). The justification sentence is identical in the policy and the report; gltf-l7-corpus.py builds the report's goldenComparison from the policy. Whether the 137 figure was ever true of this report cannot be decided from the snapshot; only its disagreement with the report's own fields is established. Hand-written prose lagging generated fields, not a rendering defect.

Focused reproduction

No focused reproduction is known. Nothing has been invented here; the evidence above is what exists.

Current tests

GltfFixtureCorpusTests.cpp validates the SOFTWARE L7 report for completeness and reproducibility (SoftwareCorpusL7ReportIsCompleteExactAndReproducible); no test reads the EasyGL report, and none compares a justification's prose with the counts.

Regression test

Drop the count from the EasyGL justification (as the SOFTWARE policy does) or have gltf-l7-corpus.py refuse a justification whose stated count differs from capturedAssetCount.

Blast radius

Reviewers auditing the EasyGL L7 evidence and readers of the project status note; the gate's zero tolerance and its 140 goldens are unaffected.

Workaround

Use the report's machine fields (and the site's L7 summary) rather than the justification's count.

The same subject is explained at several altitudes. These are the neighbouring pages at each one.

Known issues
Bug index