MotionMark's Canvas-Arcs subtest is broken if the GPUProcess is not yet running.
Created attachment 426458 [details] Patch
Comment on attachment 426458 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=426458&action=review > Source/WebKit/WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:78 > + // FIXME: This message shouldn't need to be synchronous. However, we seem to get in a bad state when this message is asynchronous and the GPUProcess has just launched. Would be good to have a bug link here.
Committed r276271 (236753@main): <https://commits.webkit.org/236753@main>
It doesn't look like this helped on the bots :/ I may need some help here. I suspect the display list logic either gets into a bad state or is dropping some initial work. It is fairly easy to get in that bad state if constructing the RemoteRenderingBackendProxy launches the GPUProcess (which I made a lot more common since the GPUProcess is now only launched when needed). I spent quite some time trying to understand the DisplayList IPC logic but it is fairly complicated. 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. I have no idea why this could be happening. Wenson, do you have any idea? In both failure and success cases, I see many calls to RemoteRenderingBackend::wakeUpAndApplyDisplayList() and the initialization stage (GPUConnectionToWebProcess::createRenderingBackend & RemoteRenderingBackend::createImageBuffer) looks the same.
rdar://76860669
Reverted r276271 for reason: It did not fix the Canvas-Arcs subtest on the bots Committed r276304 (236786@main): <https://commits.webkit.org/236786@main>
Oh, what I was reproducing had nothing to do with the GPUProcess and was actually flakily reproducing with the GPUProcess disabled. I tried on another iPad and I finally have reproduced what I think the bots are experiencing. The GPUProcess exits very shortly after launch due to memory pressure, repeatedly. I think https://commits.webkit.org/236787@main will fix this.
*** This bug has been marked as a duplicate of bug 224798 ***