Bug 245416
| Summary: | [LBSE] Pixel snapping logic is incorrect for SVG, when elements are composited | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Nikolas Zimmermann <zimmermann> |
| Component: | SVG | Assignee: | Nikolas Zimmermann <zimmermann> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | rbuis, sabouhallawa, webkit-bug-importer, zimmermann |
| Priority: | P2 | Keywords: | InRadar |
| Version: | WebKit Local Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Bug Depends on: | |||
| Bug Blocks: | 90738 | ||
Nikolas Zimmermann
In bug webkit.org/b/244966 ("[LBSE] Outermost <svg> elements are not device-pixel aligned") the rendering was adapted in such a way that the outermost <svg> element is the only element in the SVG subtree that is pixel snapped, delivering consistent results between e.g. HTML <div> elements and SVG <svg> elements, embedded in a CSS formatting context. The <div> will get pixel snapped upon painting -- the same was enforced for the outermost <svg>, however without propagating/accumulating sub-pixel errors for the descendant layers, since no pixel snapping is applied within the SVG subtree.
When elements are composited another logic is used (RenderLayerBacking), and the device-pixel alignment is applied for all SVG layers -- effectively breaking content. By fixing that, the pixel snapping logic is consistent for all painting modes we have, no matter if the outer <svg> is composited, or any of its descendants.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Nikolas Zimmermann
Pull request: https://github.com/WebKit/WebKit/pull/4520
EWS
Committed 254863@main (d2c0299eb83a): <https://commits.webkit.org/254863@main>
Reviewed commits have been landed. Closing PR #4520 and removing active labels.
Radar WebKit Bug Importer
<rdar://problem/100412807>