CNA-PLAT-007: On browsers without mix-blend-mode: plus-lighter, HTML_DOM and SVG_DOM draw BlendState.Additive as ordinary composition without an error

CNA snapshot 009d40f5  ·  Known Issues › Platform limitations  ·  source links pinned to 009d40f5

✓

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 009d40f5; unless a sentence says otherwise, nothing here was built or executed. Nothing on this page was executed unless the Evidence section says so.

The renderers set mix-blend-mode to plus-lighter for additive sprites; a browser that does not support it ignores the value, and only the memoised AdditiveBlending capability (CSS.supports) reveals the difference.

Identifier
CNA-PLAT-007
Category
Platform limitation
Subsystem
Graphics & renderers
Status
Open
Verified against
CNA 009d40f5 (009d40f5dd085c4e674d3479675fac84b12b3e0a)
Evidence basis
Source-verified: read at TARGET, not executed
Tests touching this area
Yes: see Current tests
Affected contract
SpriteBatch with BlendState::Additive on HTML_DOM and SVG_DOM

Expected behaviour

Additive sprites should add their colour to the destination.

Actual behaviour at TARGET

HtmlDomSpriteBatchRenderer.cpp writes style.mixBlendMode = 'plus-lighter' for additive sprites; HtmlDomRenderer.cpp and SvgDomRenderer.cpp answer the AdditiveBlending capability from a memoised CSS.supports('mix-blend-mode', 'plus-lighter'). Where that is false the style is ignored by the browser and the sprite composites normally.

Source locations

Evidence

Checked by reading the named sources at 009d40f5; nothing was built or executed for this entry.

Focused reproduction

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

Current tests

The HTML_DOM browser run uses a Chromium that supports plus-lighter.

Regression test

A harness case on a browser without plus-lighter asserting the capability is false.

Blast radius

Additive effects on older browsers.

Workaround

Check GraphicsCapability::AdditiveBlending and fall back.

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