gecko-dev/gfx/ipc
Jamie Nicol 2cf59fe695 Bug 1767128 - Rework and re-enable SurfaceControl rendering path on Android. r=agi,gfx-reviewers,aosmond
In bug 1762424 we introduced a rendering path on Android using the
SurfaceControl API, in order to work around a bug preventing recovery
from a GPU process crash. However, the initial implementation caused
this bug: repeatedly sending the same SurfaceControl objects over AIDL
to the GPU process resulted in them being leaked, eventually causing
severe display issues. Not only were we duplicating the SurfaceControl
for each widget, but each time a widget was resized too.

This patch reworks our usage of the SurfaceControl API to avoid ever
having to send them cross-process. Instead, we create a single child
SurfaceControl object for each SurfaceControl that is attached to a
widget. (Typically there will be a single one shared between all
widgets, changing only when the app is paused and resumed, which is
much fewer than one per widget per resize.)

In the parent process we obtain the Surfaces that will be rendered in
to from the child SurfaceControls, and only send those Surfaces to the
GPU process. Thankfully unlike SurfaceControls, sending Surfaces
cross-process does not cause leaks. When the GPU process dies we
simply destroy all of the child SurfaceControls, and recreate them
again on-demand.

Differential Revision: https://phabricator.services.mozilla.com/D147437
2022-05-31 18:41:07 +00:00
..
CanvasManagerChild.cpp Bug 1755704 - Part 1. Add support for reading back the front buffer for WebGPU. r=gfx-reviewers,lsalzman 2022-04-27 16:05:28 +00:00
CanvasManagerChild.h Bug 1755704 - Part 1. Add support for reading back the front buffer for WebGPU. r=gfx-reviewers,lsalzman 2022-04-27 16:05:28 +00:00
CanvasManagerParent.cpp Bug 1755704 - Part 1. Add support for reading back the front buffer for WebGPU. r=gfx-reviewers,lsalzman 2022-04-27 16:05:28 +00:00
CanvasManagerParent.h Bug 1755704 - Part 1. Add support for reading back the front buffer for WebGPU. r=gfx-reviewers,lsalzman 2022-04-27 16:05:28 +00:00
CompositorOptions.h Bug 1736479 - Make gfx SanityTest.jsm work again r=gfx-reviewers,bradwerth 2022-04-20 01:08:52 +00:00
CompositorSession.cpp Bug 1741156 - Reinitialize compositor and request repaint after GPU process restart. r=aosmond,geckoview-reviewers,agi 2021-11-29 20:52:31 +00:00
CompositorSession.h Bug 1741156 - Reinitialize compositor and request repaint after GPU process restart. r=aosmond,geckoview-reviewers,agi 2021-11-29 20:52:31 +00:00
CompositorWidgetVsyncObserver.cpp Bug 1765400 - Make NotifyVsync return void. r=smaug 2022-05-04 01:01:04 +00:00
CompositorWidgetVsyncObserver.h Bug 1765400 - Make NotifyVsync return void. r=smaug 2022-05-04 01:01:04 +00:00
CrossProcessPaint.cpp Bug 1751961 - Account for cross-process paint scale in nsSubDocumentFrame::Paint. r=tnikkel 2022-04-13 11:32:55 +00:00
CrossProcessPaint.h Bug 1744468. Create a high quality scaling flag for cross process paint and propagate it to dependencies. r=emilio 2021-12-14 09:43:52 +00:00
D3DMessageUtils.cpp Bug 1754037 - Part 3c: Automatically update all ParamTraits implementations, r=ipc-reviewers,media-playback-reviewers,bryce,mccr8 2022-03-04 15:39:41 +00:00
D3DMessageUtils.h Bug 1754037 - Part 3c: Automatically update all ParamTraits implementations, r=ipc-reviewers,media-playback-reviewers,bryce,mccr8 2022-03-04 15:39:41 +00:00
GPUChild.cpp Bug 1768791 - Add overlay support information to about:support r=jrmuizel,gfx-reviewers 2022-05-11 15:10:30 +00:00
GPUChild.h Bug 1768791 - Add overlay support information to about:support r=jrmuizel,gfx-reviewers 2022-05-11 15:10:30 +00:00
GPUParent.cpp Bug 1766282 - Do not use SharedHandle of ID3D11Texture2D of hardware decoded video during no video copy r=jgilbert,jrmuizel,gfx-reviewers 2022-05-20 04:37:53 +00:00
GPUParent.h Bug 1768791 - Add overlay support information to about:support r=jrmuizel,gfx-reviewers 2022-05-11 15:10:30 +00:00
GPUProcessHost.cpp Bug 1752332: Remove the shouldSanitizeFunction member r=KrisWright 2022-04-27 12:57:38 +00:00
GPUProcessHost.h Bug 1766377 - Fix some sign-compare warnings by using ProcessId more consistently. r=nika,necko-reviewers,kershaw 2022-04-27 07:45:19 +00:00
GPUProcessImpl.cpp Bug 1723505 - Convert IPC processes to GeckoArgs r=nika,kershaw 2021-10-26 19:42:03 +00:00
GPUProcessImpl.h
GPUProcessListener.h
GPUProcessManager.cpp Bug 1767128 - Rework and re-enable SurfaceControl rendering path on Android. r=agi,gfx-reviewers,aosmond 2022-05-31 18:41:07 +00:00
GPUProcessManager.h Bug 1768197 - Handle WebRenderError errors more gracefully. r=jrmuizel 2022-05-20 17:02:55 +00:00
GfxMessageUtils.h Bug 1757929 - Remove a bunch of IPC headers from gfxFont and co. r=jfkthame,layout-reviewers 2022-05-05 11:37:51 +00:00
GraphicsMessages.ipdlh Bug 1760663 - Add blocklist support for WebGPU. r=gfx-reviewers,nical 2022-03-22 15:22:39 +00:00
InProcessCompositorSession.cpp Bug 1757202 - Make the inner window id of the browser window available in the compositor bridge, r=mstange. 2022-03-11 07:49:04 +00:00
InProcessCompositorSession.h Bug 1757202 - Make the inner window id of the browser window available in the compositor bridge, r=mstange. 2022-03-11 07:49:04 +00:00
OverlayInfo.h Bug 1768791 - Add overlay support information to about:support r=jrmuizel,gfx-reviewers 2022-05-11 15:10:30 +00:00
PCanvasManager.ipdl Bug 1755704 - Part 1. Add support for reading back the front buffer for WebGPU. r=gfx-reviewers,lsalzman 2022-04-27 16:05:28 +00:00
PGPU.ipdl Bug 1768791 - Add overlay support information to about:support r=jrmuizel,gfx-reviewers 2022-05-11 15:10:30 +00:00
PVsyncBridge.ipdl Bug 1751948 - Part 1: Fix IPDL unified build issues, r=ipc-reviewers,mccr8 2022-02-28 21:01:47 +00:00
RemoteCompositorSession.cpp Bug 1751425 - Add more pointer check around CompositorSession shutdown r=gfx-reviewers,lsalzman 2022-01-23 23:42:42 +00:00
RemoteCompositorSession.h
VsyncBridgeChild.cpp
VsyncBridgeChild.h
VsyncBridgeParent.cpp
VsyncBridgeParent.h
VsyncIOThreadHolder.cpp Bug 1726594 - Add some documentation about the purpose of VsyncIOThread. r=mstange 2021-08-19 16:35:32 +00:00
VsyncIOThreadHolder.h
moz.build Bug 1768791 - Add overlay support information to about:support r=jrmuizel,gfx-reviewers 2022-05-11 15:10:30 +00:00