Re: [fxtf-drafts] [filter-effects-2] Backdrop filters should not use BackgroundImage

After further research, prototyping and testing, we need one more thing. In addition to backdrop-filter filtering only the containing isolated group, I think we need that the containing isolated group to be
a containing block for all descendants (with quirk for root). Detailed reasoning below. It is unfortunate, but I think necessary, that this change be made. Unfortunate because it is the first example I know of where style on a descendant element affects stacking behavior of an ancestor.

Note that for the, as far as we know, highly dominant use case of backdrop-filter within the root stacking context, the change I am proposing has no effect.

Reasoning:

The reason is the same as that for CSS filter (see #11):
a) Ensure that filters, especially those that move pixels, be applied atomically and not have clips or scrolls that escape them (*)
b) Ensures that the GPU accelerated rendering path can apply all effects in a hierarchical way

(a) ensures that we don't have any ill-defined cases where clips and filters don't commute, and both (a) and (b) ensure that we can avoid any slow paths in the GPU acceleration of the browser. In particular, we must ensure that composited scrolling is not unduly slowed down by backdrop-filter.

(*) Example to avoid: a position:{fixed/absolute} element which is a child of the containing isolated group to backdrop-filter. Without making the isolated group a containing block for such elements, this element can skip clips and scrolls above the backdrop-filter in the DOM, which is illogical.

-- 
GitHub Notification of comment by chrishtr
Please view or discuss this issue at https://github.com/w3c/fxtf-drafts/issues/53#issuecomment-440443465 using your GitHub account

Received on Tuesday, 20 November 2018 21:56:13 UTC