Bug 217342 - [GPU Process] Implement GPU rendering resource cache
Summary: [GPU Process] Implement GPU rendering resource cache
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Canvas (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Said Abou-Hallawa
URL:
Keywords: InRadar
Depends on: 217166 217550 217554 217558 217566 217573 217596 217809 218472 218529 218839 218843 218865 218871 218934
Blocks:
  Show dependency treegraph
 
Reported: 2020-10-05 15:13 PDT by Said Abou-Hallawa
Modified: 2021-03-05 10:50 PST (History)
29 users (show)

See Also:


Attachments
Patch (166.36 KB, patch)
2020-10-05 15:33 PDT, Said Abou-Hallawa
no flags Details | Formatted Diff | Diff
Patch (174.74 KB, patch)
2020-10-05 18:09 PDT, Said Abou-Hallawa
no flags Details | Formatted Diff | Diff
Patch (178.05 KB, patch)
2020-10-05 22:25 PDT, Said Abou-Hallawa
no flags Details | Formatted Diff | Diff
Patch (178.39 KB, patch)
2020-10-05 23:40 PDT, Said Abou-Hallawa
no flags Details | Formatted Diff | Diff
Patch (185.69 KB, patch)
2020-10-07 02:00 PDT, Said Abou-Hallawa
no flags Details | Formatted Diff | Diff
Patch (182.46 KB, patch)
2020-10-07 02:17 PDT, Said Abou-Hallawa
ews-feeder: commit-queue-
Details | Formatted Diff | Diff
Patch (183.13 KB, patch)
2020-10-07 02:25 PDT, Said Abou-Hallawa
ews-feeder: commit-queue-
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Said Abou-Hallawa 2020-10-05 15:13:29 PDT
All the rendering resources, such as ImageFrames, Fonts and ImageBuffers will be cached in the GPU side. Managing this cache will be done by RemoteRenderingBackend and RemoteRenderingBackendProxy. Both of these objects will have a separate objects for maintaining the cached objects. The goal is to have these objects cached once and referenced by their ids multiple times.
Comment 1 Said Abou-Hallawa 2020-10-05 15:33:06 PDT
Created attachment 410571 [details]
Patch
Comment 2 Said Abou-Hallawa 2020-10-05 18:09:14 PDT
Created attachment 410597 [details]
Patch
Comment 3 Said Abou-Hallawa 2020-10-05 22:25:23 PDT
Created attachment 410613 [details]
Patch
Comment 4 Said Abou-Hallawa 2020-10-05 23:40:34 PDT
Created attachment 410617 [details]
Patch
Comment 5 Myles C. Maxfield 2020-10-06 22:27:19 PDT
Comment on attachment 410617 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=410617&action=review

It seems like there will be 3 or 4 patches in here once this is broken up. I'll review those in more detail (just because this one is pretty big).

> Source/WebCore/platform/graphics/GraphicsContext.cpp:795
> +    if (m_impl && image.isPDFDocumentImage())

Why is this relevant?

> Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:-292
> -    if (m_impl) {
> -        m_impl->drawNativeImage(image, imageSize, destRect, srcRect, options);
> -        return;
> -    }
> -

This is surprising.
Comment 6 Said Abou-Hallawa 2020-10-07 02:00:19 PDT
Created attachment 410738 [details]
Patch
Comment 7 Said Abou-Hallawa 2020-10-07 02:17:19 PDT
Created attachment 410739 [details]
Patch
Comment 8 Said Abou-Hallawa 2020-10-07 02:25:44 PDT
Created attachment 410740 [details]
Patch
Comment 9 Radar WebKit Bug Importer 2020-10-08 19:46:24 PDT
<rdar://problem/70122760>
Comment 10 Simon Fraser (smfr) 2021-01-06 09:16:21 PST
Is this patch still useful?
Comment 11 Said Abou-Hallawa 2021-03-05 10:50:02 PST
The attached patch was split and landed separately in the blocking bugs.