Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9a8998b85a0acaa34a0c0756c3e77cfe645512c6
      
https://github.com/WebKit/WebKit/commit/9a8998b85a0acaa34a0c0756c3e77cfe645512c6
  Author: Said Abou-Hallawa <[email protected]>
  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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to