Bug 1697096 - Call WebRenderAPI::Resume() in AllocPWebRenderBridgeParent() if necessary on Android r=jnicol

On Android, WebRenderAPI::Resume() call is triggered from Java side. But Java side does not know about fallback to RenderCompositorOGLSWGL. Then in this fallback case, RenderCompositor::Resume() needs to be called from gfx code if it is necessary to be called.

Resume() is necessary only when RenderCompositor::Resume() is implemented. The Resume() is implemented only on RenderCompositorEGL and RenderCompositorOGLSWGL. And only RenderCompositorOGLSWGL uses software WebRender.

Differential Revision: https://phabricator.services.mozilla.com/D107620
This commit is contained in:
sotaro 2021-04-20 06:48:35 +00:00
Родитель fce1c9835f
Коммит 1082170c92
1 изменённых файлов: 10 добавлений и 0 удалений

Просмотреть файл

@ -1811,6 +1811,16 @@ PWebRenderBridgeParent* CompositorBridgeParent::AllocPWebRenderBridgeParent(
return mWrBridge;
}
#ifdef MOZ_WIDGET_ANDROID
// On Android, WebRenderAPI::Resume() call is triggered from Java side. But
// Java side does not know about fallback to RenderCompositorOGLSWGL. In this
// fallback case, RenderCompositor::Resume() needs to be called from gfx code.
if (!mPaused && mWidget->GetCompositorOptions().UseSoftwareWebRender() &&
mWidget->GetCompositorOptions().AllowSoftwareWebRenderOGL()) {
api->Resume();
}
#endif
wr::TransactionBuilder txn(api);
txn.SetRootPipeline(aPipelineId);
api->SendTransaction(txn);