[Webkit-unassigned] [Bug 213403] [CG] REGRESSION (r256892): Luminance SVG mask is not applied when accelerated drawing is enabled

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Jun 19 13:34:21 PDT 2020


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

--- Comment #1 from Said Abou-Hallawa <sabouhallawa at apple.com> ---
This is a regression of r256892. Before this change

void ImageBuffer::genericConvertToLuminanceMask()
{
    auto srcPixelArray = getUnmultipliedImageData(luminanceRect);
    ...
}

RefPtr<Uint8ClampedArray> ImageBuffer::getUnmultipliedImageData(const IntRect& rect, IntSize* pixelArrayDimensions, CoordinateSystem coordinateSystem) const
{
    if (context().isAcceleratedContext())
        flushContext();
}

After this change:

void ConcreteImageBuffer::convertToLuminanceMask() override
{
    if (auto* backend = ensureBackendCreated()) {
        flushDrawingContext();
        backend->convertToLuminanceMask();
    }
}

And ImageBufferBackend::convertToLuminanceMask() does not do any flushing. Notice flushDrawingContext() flushes only the drawing items in the display list if they exist.

If the ImageBuffer is backed by an IOSurface, convertToLuminanceMask() will act on non up-to-date backend. So we need to call ConcreteImageBuffer::flushContext() instead.

-- 
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/20200619/ea6177ac/attachment-0001.htm>


More information about the webkit-unassigned mailing list