Bug 310809
| Summary: | [GTK][WPE] Sync initial `preserves3D` state for structural `GraphicsLayerCoordinated` | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Nikolas Zimmermann <zimmermann> |
| Component: | WPE WebKit | Assignee: | Nikolas Zimmermann <zimmermann> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | CC: | bugs-noreply |
| Priority: | P2 | ||
| Version: | WebKit Local Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Nikolas Zimmermann
Structural GraphicsLayers (e.g. viewport anchor layers for position:sticky)
are initialized with preserves3D=true in the base GraphicsLayer constructor,
but this value was never synced to the CoordinatedPlatformLayer because
Change::Preserves3D was not included in the initial pending changes. Since
the value is already true, subsequent setPreserves3D(true) calls early-return
without noting the change. This caused the SkiaCompositingLayer to have
preserves3D=false, breaking 3D rendering context layer collection for
preserve-3d scenes containing sticky-positioned elements.
Always include Change::Preserves3D in the initial sync. This is the only
property with a conditional default (true for Type::Structural, false
otherwise) that differs between GraphicsLayer and CoordinatedPlatformLayer.
All other synced properties have matching defaults in both classes.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Nikolas Zimmermann
Pull request: https://github.com/WebKit/WebKit/pull/61411
EWS
Committed 309989@main (2a377397b561): <https://commits.webkit.org/309989@main>
Reviewed commits have been landed. Closing PR #61411 and removing active labels.