Fix backdrop-filter invalidation
Categories
(Core :: Graphics: WebRender, task)
Tracking
()
Tracking | Status | |
---|---|---|
firefox102 | --- | fixed |
People
(Reporter: gw, Assigned: gw)
References
Details
Attachments
(1 file)
Assignee | ||
Comment 1•3 years ago
|
||
Since primitives are not passed through the backdrop-filter chain
they may be part of during update_prim_dependencies, they may not
expand their coverage rect to the entire coverage rect of the
backdrop-filter primitive that they affect.
In rare cases, this can result in incorrect invalidation where the
edges of a blurred primitive may not invalidate a (partial) tile
when the primitive no longer intersects with that tile.
To handle this correctly, we defer checks on the backdrop filter
validity until we've calculated the dirty rects for all tiles
that are affected by that filter. Then, if any of those regions
are dirty, we invalidate the backdrop-filter primitive region.
In future, it may be better to pass the primitive through both
its standard surface chain, and also the surface chain of the
backdrop-filter. However, this would be quite an involved change
to make, and it's not clear right now if it would be better than
just deferring and invalidating the backdrop-filter prim.
Updated•3 years ago
|
Comment 3•3 years ago
|
||
Description
•