[webkit-changes] [WebKit/WebKit] 9a8998: [GPU Process][Filters] Make FilterFunction a Rende...

Said Abou-Hallawa noreply at github.com
Mon May 8 13:42:15 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9a8998b85a0acaa34a0c0756c3e77cfe645512c6
      https://github.com/WebKit/WebKit/commit/9a8998b85a0acaa34a0c0756c3e77cfe645512c6
  Author: Said Abou-Hallawa <said at apple.com>
  Date:   2023-05-08 (Mon, 08 May 2023)

  Changed paths:
    M Source/WebCore/platform/graphics/RenderingResource.h
    M Source/WebCore/platform/graphics/filters/Filter.cpp
    M Source/WebCore/platform/graphics/filters/Filter.h
    M Source/WebCore/platform/graphics/filters/FilterFunction.cpp
    M Source/WebCore/platform/graphics/filters/FilterFunction.h
    M Source/WebCore/svg/graphics/filters/SVGFilter.cpp
    M Source/WebCore/svg/graphics/filters/SVGFilter.h
    M Source/WebKit/Shared/WebCoreArgumentCoders.cpp

  Log Message:
  -----------
  [GPU Process][Filters] Make FilterFunction a RenderingResource
https://bugs.webkit.org/show_bug.cgi?id=256318
rdar://108900138

Reviewed by Simon Fraser.

This will allow caching the SVGFilter in GPU Process and will allow referencing
it in DisplayList items by its RenderingResourceIdentifier.

To do that, FilterFunction has to be a RenderingResource. This will overcome a
layering violation because we should not reference SVGFilter in platform sources.
Also this will overcome a ref-counting problem since FilterFunction and
RenderingResource are both RefCounted classes.

* Source/WebCore/platform/graphics/RenderingResource.h:
(WebCore::RenderingResource::renderingResourceIdentifierIfExists const):
* Source/WebCore/platform/graphics/filters/Filter.cpp:
(WebCore::Filter::Filter):
* Source/WebCore/platform/graphics/filters/Filter.h:
(WebCore::Filter::Filter):
* Source/WebCore/platform/graphics/filters/FilterFunction.cpp:
(WebCore::FilterFunction::FilterFunction):
* Source/WebCore/platform/graphics/filters/FilterFunction.h:
* Source/WebCore/svg/graphics/filters/SVGFilter.cpp:
(WebCore::SVGFilter::create):
(WebCore::SVGFilter::SVGFilter):
* Source/WebCore/svg/graphics/filters/SVGFilter.h:
* Source/WebKit/Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<SVGFilter>::encode):
(IPC::ArgumentCoder<SVGFilter>::decode):

Canonical link: https://commits.webkit.org/263820@main




More information about the webkit-changes mailing list