Bug 217809 - [GPU Process] Exchange RemoteImageBuffer and RemoteImageBufferProxy
Summary: [GPU Process] Exchange RemoteImageBuffer and RemoteImageBufferProxy
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:
Blocks: 217342
  Show dependency treegraph
 
Reported: 2020-10-15 22:22 PDT by Said Abou-Hallawa
Modified: 2020-10-16 15:24 PDT (History)
16 users (show)

See Also:


Attachments
Patch (145.15 KB, patch)
2020-10-15 22:28 PDT, Said Abou-Hallawa
ews-feeder: commit-queue-
Details | Formatted Diff | Diff
Patch (79.73 KB, patch)
2020-10-16 00:28 PDT, Said Abou-Hallawa
no flags Details | Formatted Diff | Diff
Patch (146.65 KB, patch)
2020-10-16 00:54 PDT, Said Abou-Hallawa
no flags Details | Formatted Diff | Diff
Patch (80.29 KB, patch)
2020-10-16 01:12 PDT, Said Abou-Hallawa
no flags Details | Formatted Diff | Diff
Patch (146.65 KB, patch)
2020-10-16 12:45 PDT, Said Abou-Hallawa
no flags Details | Formatted Diff | Diff
Patch (145.61 KB, patch)
2020-10-16 14:00 PDT, Said Abou-Hallawa
no flags Details | Formatted Diff | Diff
Patch (145.61 KB, patch)
2020-10-16 14:25 PDT, Said Abou-Hallawa
no flags 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-15 22:22:34 PDT
The ImageBuffer is a WebCore object. We inherit from it for different reasons and we allow different backends for all of the derived classes. For GPU rendering, we currently create an object of type RemoteImageBufferProxy in the GPU Process to own the backend. And to have access to this object, we create another object of type RemoteImageBuffer in the Web Process. The two classes, RemoteImageBufferProxy and RemoteImageBuffer, provide a seamlessly interface in WebCore. So the clients do not have to worry about when the rendering will take place to the backend in the GPU process.

But the names of the GPU rendering classes have been confusing. RemoteImageBuffer should be the real object in the GPU Process because it owns the backend. And RemoteImageBufferProxy should be a proxy to this object in the Web Process. So we are going to exchange the following classes:

RemoteImageBuffer <-> RemoteImageBufferProxy
RemoteRenderingBackend <-> RemoteRenderingBackendProxy
RemoteImageBufferMessageHandler <-> RemoteImageBufferMessageHandlerProxy
Comment 1 Said Abou-Hallawa 2020-10-15 22:28:08 PDT
Created attachment 411535 [details]
Patch
Comment 2 Said Abou-Hallawa 2020-10-16 00:28:12 PDT
Created attachment 411540 [details]
Patch
Comment 3 Said Abou-Hallawa 2020-10-16 00:54:05 PDT
Created attachment 411541 [details]
Patch
Comment 4 Said Abou-Hallawa 2020-10-16 01:12:08 PDT
Created attachment 411544 [details]
Patch
Comment 5 EWS 2020-10-16 12:22:00 PDT
Tools/Scripts/svn-apply failed to apply attachment 411544 [details] to trunk.
Please resolve the conflicts and upload a new patch.
Comment 6 Said Abou-Hallawa 2020-10-16 12:45:32 PDT
Created attachment 411605 [details]
Patch
Comment 7 Said Abou-Hallawa 2020-10-16 14:00:21 PDT
Created attachment 411612 [details]
Patch
Comment 8 Said Abou-Hallawa 2020-10-16 14:25:40 PDT
Created attachment 411614 [details]
Patch
Comment 9 EWS 2020-10-16 15:21:02 PDT
Committed r268612: <https://trac.webkit.org/changeset/268612>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 411614 [details].
Comment 10 Radar WebKit Bug Importer 2020-10-16 15:22:43 PDT
<rdar://problem/70394134>