Open Bug 1923933 Opened 1 year ago Updated 1 year ago

CSS animations inside elements which have a CSS mask applied don't use OMTA

Categories

(Core :: Layout, defect)

defect

Tracking

()

People

(Reporter: mstange, Unassigned)

References

Details

Attachments

(1 file)

In bug 1918208 we discovered that the tab throbber animation became very expensive when a mask-image: linear-gradient rule was applied to an ancestor element of the tabs. This bug tracks making OMTA work inside masked elements.

Steps to reproduce:

  1. Load the attached testcase.
  2. Inspect the animation with the devtools.

Expected results:
There should be a lightning bolt next to the animation, indicating that the animation runs on the compositor.

Actual results:
No lightning bolt; the animation requires restyles and paints on the main thread.


I am not sure if this is caused by an outdated heuristic or if we actually use fallback rendering inside masked elements.

See Also: → 1918208
Severity: -- → S3
Flags: needinfo?(gwatson)

I think this is probably more of a question for Hiro. Though maybe there is something WR-specific that is needed to support this?

Flags: needinfo?(gwatson) → needinfo?(hikezoe.birchill)

No, as far as I can tell, it's unrelated to WebRender.

The code causing this bug are:

this SelfOrAncestorHasRenderingObservers call and this same function call.

As the function name stands for, I vaguely remember that the original intention is not to run animations with SVG masks on the compositor. So in this specific case we need to differentiate at least not element() cases.

Flags: needinfo?(hikezoe.birchill)

Moving this out of graphics triage to Layout; hopefully that's correct.

No longer blocks: gfx-triage
Component: Graphics: WebRender → Layout
No longer blocks: 1924534
See Also: → 1924534
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: