RESOLVED DUPLICATE of bug 224798 224778
MotionMark's Canvas-Arcs subtest is broken if the GPUProcess is not yet running
https://bugs.webkit.org/show_bug.cgi?id=224778
Summary MotionMark's Canvas-Arcs subtest is broken if the GPUProcess is not yet running
Chris Dumez
Reported 2021-04-19 12:12:56 PDT
MotionMark's Canvas-Arcs subtest is broken if the GPUProcess is not yet running.
Attachments
Patch (6.31 KB, patch)
2021-04-19 12:18 PDT, Chris Dumez
simon.fraser: review+
Chris Dumez
Comment 1 2021-04-19 12:18:56 PDT
Simon Fraser (smfr)
Comment 2 2021-04-19 13:30:47 PDT
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.
Chris Dumez
Comment 3 2021-04-19 13:36:06 PDT
Chris Dumez
Comment 4 2021-04-19 20:21:55 PDT
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.
Ryan Haddad
Comment 5 2021-04-19 22:14:49 PDT
Chris Dumez
Comment 6 2021-04-20 07:52:05 PDT
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>
Chris Dumez
Comment 7 2021-04-20 10:27:07 PDT
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.
Chris Dumez
Comment 8 2021-04-20 11:24:00 PDT
*** This bug has been marked as a duplicate of bug 224798 ***
Note You need to log in before you can comment on or make changes to this bug.