[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