Bug 224781

Summary: GPUConnectionToWebProcess::CreateRenderingBackend IPC should be asynchronous
Product: WebKit Reporter: Chris Dumez <cdumez>
Component: WebKit2Assignee: Chris Dumez <cdumez>
Status: RESOLVED FIXED    
Severity: Normal CC: kkinnunen, lingcherd_ho, sabouhallawa, simon.fraser, thorton, webkit-bug-importer, wenson_hsieh
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 224778    
Bug Blocks:    

Description Chris Dumez 2021-04-19 13:32:37 PDT
GPUConnectionToWebProcess::CreateRenderingBackend IPC should be asynchronous. We had to make it synchronous as a temporary workaround for Bug 224778. We need to find the underlying cause of Bug 224778 and make the IPC async again.
Comment 1 Chris Dumez 2021-04-19 14:11:30 PDT
When running MotionMark's Canvas-Arcs, in the success case, I see RemoteRenderingBackend::didCreateSharedDisplayListHandle() getting called at least 4 times. However, in the failure case, it seems RemoteRenderingBackend::didCreateSharedDisplayListHandle() is only called once.

In both failure and success cases, I see many calls to RemoteRenderingBackend::wakeUpAndApplyDisplayList() and the initialization stage (GPUConnectionToWebProcess::createRenderingBackend & RemoteRenderingBackend::createImageBuffer) looks the same.
Comment 2 Chris Dumez 2021-04-19 14:19:16 PDT
(In reply to Chris Dumez from comment #1)
> When running MotionMark's Canvas-Arcs, in the success case, I see
> RemoteRenderingBackend::didCreateSharedDisplayListHandle() getting called at
> least 4 times. However, in the failure case, it seems
> RemoteRenderingBackend::didCreateSharedDisplayListHandle() is only called
> once.
> 
> In both failure and success cases, I see many calls to
> RemoteRenderingBackend::wakeUpAndApplyDisplayList() and the initialization
> stage (GPUConnectionToWebProcess::createRenderingBackend &
> RemoteRenderingBackend::createImageBuffer) looks the same.

Note that I haven't been able to reproduce on macOS. On iOS with iPad, it is flaky but fairly easily reproducible.
Comment 3 Chris Dumez 2021-04-20 07:52:22 PDT
<https://commits.webkit.org/236786@main>
Comment 4 Ling Ho 2021-04-23 02:49:34 PDT
rdar://76898311