[Webkit-unassigned] [Bug 256535] New: [GPU Process][Filters] Make top level SVGFilter own its FilterResults

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue May 9 11:18:37 PDT 2023


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

            Bug ID: 256535
           Summary: [GPU Process][Filters] Make top level SVGFilter own
                    its FilterResults
           Product: WebKit
           Version: WebKit Nightly Build
          Hardware: Unspecified
                OS: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: Layout and Rendering
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: sabouhallawa at apple.com
                CC: bfulgham at webkit.org, simon.fraser at apple.com,
                    zalan at apple.com

This will allow caching the FilterResults along with the SVGFilter in RemoteResourceCache. The solution has to consider the following cases for the SVGFilter & FilterResults:

a. SVGFilter is created in WebProcess:
    1. Rendering in WebProcess:
        i. Top level SVGFilter: SVGFilter creates its FilterResults. SVGFilter caches its FilterResults (will be implemented by this bug).
       ii. Referenced SVGFilter: SVGFilter should not create FilterResults.
    2. Rendering in GPUProcess:
        i. Top level SVGFilter: SVGFilter should not create FilterResults (will be fixed by this bug).
       ii. Referenced SVGFilter: SVGFilter should not create FilterResults.
b. SVGFilter is created in GPUProcess:
    1. Rendering in GPUProcess:
        i. Top level SVGFilter: SVGFilter creates its FilterResults (Memory has to be attributed to WebProcess). SVGFilter caches its FilterResults (will be implemented in another bug).
       ii. Referenced SVGFilter: SVGFilter should not create FilterResults.

To do that GraphicsContext::drawFilteredImageBuffer() has to take FilterResultsEnsurer which returns FilterResults&. drawFilteredImageBuffer() will call it only when the FilterResults is needed.  SVGFilter::ensureResults() will return FilterResults& and it takes FilterResultsCreator. FilterResultsCreator will return a std::unique_ptr<FilterResults> which SVGFilter will maintain.

-- 
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/20230509/b326bcff/attachment-0001.htm>


More information about the webkit-unassigned mailing list