[Webkit-unassigned] [Bug 181080] [CoordnatedGraphics] A child layer of a semitransparent layer isn't clipped properly

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Jan 25 06:25:30 PST 2018


https://bugs.webkit.org/show_bug.cgi?id=181080

Miguel Gomez <magomez at igalia.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |magomez at igalia.com

--- Comment #3 from Miguel Gomez <magomez at igalia.com> ---
This is due to a problem with ClipStack.

When painting the pieces of the blue rectangle that are out of the green one, a clipping area is set at (0,0) with size 0x0, which means that nothing should be rendered. But CliptStack doesn't apply that clipping area (doesn't call glScissor) because the area is empty, so the pieces that should not be rendered are rendered anyway. I'm not sure why ClipStack behaves that way though.

I see 2 ways to fix this, both of them fixing the issue:

- Remove the check for an empty area in ClipStack::apply(). This causes that nothing gets rendered when the clipping area is empty, which makes sense IMO.

- In TextureMapperLayer::paintSelfAndChildren(), if the layer clips its children, check whether the resulting clipping area is empty and, in that case, do not try to paint the layer children. This is more efficient, as we avoid painting layers that will be fully clipped.

Despite none of the fixes break any layout test, I'm trying to figure out possible side effects them. I'll upload a patch when I'm sure I'm not breaking anything.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20180125/75d6e931/attachment.html>


More information about the webkit-unassigned mailing list