Perform particular clip-path animations on the compositor thread |
||||||
Issue descriptionIt's common, and difficult, to "reveal" an element during animations. This could be part of an accordion, or a hero transitions where something zooms in & expands. We can currently do this on the compositor using an outer element with overflow:hidden, where an inner element transforms and the outer element counter-transforms. This is really hacky and involves more DOM elements than needed. To make it simpler, could particular clip-path animations be done in the compositor, such as http://output.jsbin.com/ticeve/quiet? It might be enough to limit it to "inset" values, rather than complex shapes.
,
Feb 1 2017
,
Feb 2 2017
I had a chat with some cc folks at BlinkOn about this. The ClipTree doesn't correspond to the clip-path property as I had assumed. Instead clip-paths are implemented as masks in the EffectTree. Animating the mask on the compositor thread would require the mask be rerastered which is currently not a capability of the compositor. Achieving this would require custom display lists to be able to modify the clip-path mask draw commands and to be able to block compositor animation frames on rasterisation. These two features are needed in general for running paint only animation effects like colours and background-position on the compositor.
,
May 25 2017
Safari now performs clip-path on the compositor if the element is already composited (eg transform: translateZ(0)). It still has a main-thread dependency on style recalculation, but it's a huge step forward.
,
Jun 6 2017
paint-dev discussion https://groups.google.com/a/chromium.org/forum/#!topic/paint-dev/3bXUo0X3C5I
,
Jun 7 2017
,
Jun 7 2017
Assigned to xida to triage, given he was looking at clip-path animations recently.
,
Feb 12 2018
,
Apr 25 2018
Update the status to be "Assigned".
,
May 1 2018
,
Yesterday
(27 hours ago)
Issue 607388 has been merged into this issue. |
||||||
►
Sign in to add a comment |
||||||
Comment 1 by enne@chromium.org
, Jan 31 2017Labels: -Type-Bug Type-Feature
Status: Available (was: Untriaged)