| Summary: | MotionMark's Canvas-Arcs subtest is broken if the GPUProcess is not yet running | ||||||
|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Chris Dumez <cdumez> | ||||
| Component: | WebKit2 | Assignee: | Chris Dumez <cdumez> | ||||
| Status: | RESOLVED DUPLICATE | ||||||
| Severity: | Normal | CC: | kkinnunen, sabouhallawa, simon.fraser, thorton, webkit-bug-importer, wenson_hsieh | ||||
| Priority: | P2 | Keywords: | InRadar | ||||
| Version: | WebKit Nightly Build | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| See Also: |
https://bugs.webkit.org/show_bug.cgi?id=224770 https://bugs.webkit.org/show_bug.cgi?id=224556 https://bugs.webkit.org/show_bug.cgi?id=224623 https://bugs.webkit.org/show_bug.cgi?id=224516 |
||||||
| Bug Depends on: | |||||||
| Bug Blocks: | 224781 | ||||||
| Attachments: |
|
||||||
|
Description
Chris Dumez
2021-04-19 12:12:56 PDT
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. 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 *** |