Open Bug 1728805 Opened 3 years ago Updated 6 months ago

Improve impedance match between nsDisplayOpacity/nsDisplayTransform and WebRender::StackingContext

Categories

(Core :: Graphics: WebRender, enhancement)

enhancement

Tracking

()

People

(Reporter: jrmuizel, Unassigned)

References

(Blocks 3 open bugs)

Details

Currently a single frame with transform and opacity will translate into a nsDisplayTransform and an nsDisplayOpacity. These each get turned into a push_wr_stacking_context() while they could be a single push_wr_stacking_context().

However, Glenn writes:
"Well ... I think in general the WR concept of a "stacking context" is way overloaded right now. The WR code to determine the optimal way to handle a given stacking context in the DL is waaaay complex and fragile. So my gut instinct is that we probably want some kind of range of "grouping" APIs, such as filters, 3d rendering contexts, that can contain child prims, but that are not all exactly one concept in the public API ... if that makes sense.
It's very hand-wavy, but that's the kind of thing I think we probably want from WR perspective in an ideal scenario at the same time "

It feels like we should sort out what a better API is for WebRender is and then adjust our gecko displaylist to better match.

Blocks: 1566826

Changing severity to S3 because we should do this but it isn't top severity (I really dislike this new bugzilla policy)

Severity: -- → S3
Blocks: wr-todos
You need to log in before you can comment on or make changes to this bug.