Bug 217342

Summary: [GPU Process] Implement GPU rendering resource cache
Product: WebKit Reporter: Said Abou-Hallawa <sabouhallawa>
Component: CanvasAssignee: Said Abou-Hallawa <sabouhallawa>
Status: RESOLVED FIXED    
Severity: Normal CC: annulen, calvaris, cdumez, cgarcia, changseok, dino, eric.carlson, esprehn+autocc, ews-watchlist, fmalita, glenn, gustavo, gyuyoung.kim, japhet, jer.noble, jonlee, menard, mmaxfield, pdr, philipj, pnormand, ryuan.choi, schenney, sergio, simon.fraser, thorton, vjaquez, webkit-bug-importer, wenson_hsieh
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 217166, 217550, 217554, 217558, 217566, 217573, 217596, 217809, 218472, 218529, 218839, 218843, 218865, 218871, 218934    
Bug Blocks:    
Attachments:
Description Flags
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
ews-feeder: commit-queue-
Patch ews-feeder: commit-queue-

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.