fune/gfx/layers/ipc
Lee Salzman 6accc1036c Bug 1873075 - Delay UnregisterTextureOwner until all potential UseRemoteTextures are received. r=aosmond
UnregisterTextureOwner, if called before any use of UseRemoteTexture, can cause UseRemoteTexture to wait
for the texture owner to be created, since the texture owner does not exist, and there is no evidence it
was previously unregistered.

This patch attempts to address the issue by delaying the actual UnregisterTextureOwner until all such
UseRemoteTexture instances are processed. This is accomplished by noting that UseRemoteTexture ops come
in via transactions from a CompositableForwarder and so all are associated with a forwarder transaction
with a FwdTransactionId. RecordedTextureData on destruction reports the last FwdTransactionId associated
with its final UseRemoteTexture before it attempts to call UnregisterTextureOwner. If RemoteTextureMap
has not been notified of a given FwdTransactionId yet, then the UnregisterTextureOwner call will be
deferred until it has seen this FwdTransactionId.

This adds a RemoteTextureTxnScheduler to track the issuing of dependencies and waiting for FwdTransactionIds.

This patch also cleans up the issuing of FwdTransactionIds themselves to be associated with a given
top-level protocol so that all sub-protocols have transaction numbers that can be safely compared amongst
each other. This makes dependency expiration more robust since any advancement of the transaction number
from any source can help retire expired dependencies.

Differential Revision: https://phabricator.services.mozilla.com/D197895
2024-01-09 11:53:14 +00:00
..
ActiveResource.h Bug 1870957 - Part 3. Make CanvasManagerChild manage ActiveResourceTracker. r=gfx-reviewers,lsalzman 2023-12-20 13:01:19 +00:00
APZChild.cpp
APZChild.h
APZCTreeManagerChild.cpp Bug 1715179 - Propagate VisualViewport rect and the root scrollable rect and use them on the main-thread. r=botond 2023-12-04 09:31:22 +00:00
APZCTreeManagerChild.h Bug 1715179 - Propagate VisualViewport rect and the root scrollable rect and use them on the main-thread. r=botond 2023-12-04 09:31:22 +00:00
APZCTreeManagerParent.cpp
APZCTreeManagerParent.h
APZInputBridgeChild.cpp
APZInputBridgeChild.h
APZInputBridgeParent.cpp
APZInputBridgeParent.h
CanvasChild.cpp Bug 1871613 - Ensure CanvasDrawEventRecorder releases external surface dependencies. r=gfx-reviewers,lsalzman 2023-12-23 01:34:31 +00:00
CanvasChild.h Bug 1871613 - Ensure CanvasDrawEventRecorder releases external surface dependencies. r=gfx-reviewers,lsalzman 2023-12-23 01:34:31 +00:00
CanvasTranslator.cpp Bug 1873075 - Delay UnregisterTextureOwner until all potential UseRemoteTextures are received. r=aosmond 2024-01-09 11:53:14 +00:00
CanvasTranslator.h Bug 1873075 - Delay UnregisterTextureOwner until all potential UseRemoteTextures are received. r=aosmond 2024-01-09 11:53:14 +00:00
CompositableForwarder.cpp
CompositableForwarder.h Bug 1873075 - Delay UnregisterTextureOwner until all potential UseRemoteTextures are received. r=aosmond 2024-01-09 11:53:14 +00:00
CompositableTransactionParent.cpp
CompositableTransactionParent.h
CompositorBench.cpp
CompositorBench.h
CompositorBridgeChild.cpp Bug 1873075 - Delay UnregisterTextureOwner until all potential UseRemoteTextures are received. r=aosmond 2024-01-09 11:53:14 +00:00
CompositorBridgeChild.h Bug 1873075 - Delay UnregisterTextureOwner until all potential UseRemoteTextures are received. r=aosmond 2024-01-09 11:53:14 +00:00
CompositorBridgeParent.cpp Bug 1870086: Add thread-safety annotations to CompositorBridgeParent r=gfx-reviewers,aosmond 2023-12-19 23:14:05 +00:00
CompositorBridgeParent.h Bug 1870086: Add thread-safety annotations to CompositorBridgeParent r=gfx-reviewers,aosmond 2023-12-19 23:14:05 +00:00
CompositorManagerChild.cpp Bug 1873075 - Delay UnregisterTextureOwner until all potential UseRemoteTextures are received. r=aosmond 2024-01-09 11:53:14 +00:00
CompositorManagerChild.h Bug 1873075 - Delay UnregisterTextureOwner until all potential UseRemoteTextures are received. r=aosmond 2024-01-09 11:53:14 +00:00
CompositorManagerParent.cpp Bug 1873075 - Delay UnregisterTextureOwner until all potential UseRemoteTextures are received. r=aosmond 2024-01-09 11:53:14 +00:00
CompositorManagerParent.h Bug 1873075 - Delay UnregisterTextureOwner until all potential UseRemoteTextures are received. r=aosmond 2024-01-09 11:53:14 +00:00
CompositorThread.cpp
CompositorThread.h Bug 1868396 - Part 1. Rework VideoBridgeParent shutdown to close explicitly. r=gfx-reviewers,lsalzman 2023-12-05 16:25:52 +00:00
CompositorVsyncScheduler.cpp
CompositorVsyncScheduler.h Bug 1870086: Add thread-safety annotations to CompositorBridgeParent r=gfx-reviewers,aosmond 2023-12-19 23:14:05 +00:00
CompositorVsyncSchedulerOwner.h
ContentCompositorBridgeParent.cpp Bug 1870086: Add thread-safety annotations to CompositorBridgeParent r=gfx-reviewers,aosmond 2023-12-19 23:14:05 +00:00
ContentCompositorBridgeParent.h
ImageBridgeChild.cpp Bug 1873075 - Delay UnregisterTextureOwner until all potential UseRemoteTextures are received. r=aosmond 2024-01-09 11:53:14 +00:00
ImageBridgeChild.h Bug 1873075 - Delay UnregisterTextureOwner until all potential UseRemoteTextures are received. r=aosmond 2024-01-09 11:53:14 +00:00
ImageBridgeParent.cpp Bug 1873075 - Delay UnregisterTextureOwner until all potential UseRemoteTextures are received. r=aosmond 2024-01-09 11:53:14 +00:00
ImageBridgeParent.h Bug 1873075 - Delay UnregisterTextureOwner until all potential UseRemoteTextures are received. r=aosmond 2024-01-09 11:53:14 +00:00
ISurfaceAllocator.cpp Backed out 12 changesets (bug 1795296, bug 1855742) as requested by aosmond a=backout 2023-12-19 17:25:55 +02:00
ISurfaceAllocator.h Backed out 12 changesets (bug 1795296, bug 1855742) as requested by aosmond a=backout 2023-12-19 17:25:55 +02:00
KnowsCompositor.cpp Bug 1870957 - Part 3. Make CanvasManagerChild manage ActiveResourceTracker. r=gfx-reviewers,lsalzman 2023-12-20 13:01:19 +00:00
KnowsCompositor.h Bug 1870957 - Part 3. Make CanvasManagerChild manage ActiveResourceTracker. r=gfx-reviewers,lsalzman 2023-12-20 13:01:19 +00:00
LayersMessages.ipdlh
LayersMessageUtils.h Bug 1861605 - Use IDXGIResource1::CreateSharedHandle() instead of IDXGIResource::GetSharedHandle() r=gfx-reviewers,lsalzman 2023-12-19 09:23:21 +00:00
LayersSurfaces.ipdlh Bug 1871467 - Remove unused ReplayTexture support. r=aosmond CLOSED TREE 2023-12-22 04:58:16 +00:00
LayerTreeOwnerTracker.cpp
LayerTreeOwnerTracker.h
PAPZ.ipdl
PAPZCTreeManager.ipdl Bug 1715179 - Propagate VisualViewport rect and the root scrollable rect and use them on the main-thread. r=botond 2023-12-04 09:31:22 +00:00
PAPZInputBridge.ipdl Backed out changeset 9c4ce17422de (bug 1867360) for causing crashes on PRemoteQuotaObjectChild. CLOSED TREE 2024-01-08 23:18:19 +02:00
PCanvas.ipdl Bug 1829026 - Update CanvasTranslator to work with DrawTargetWebgl. r=aosmond 2023-12-18 18:10:46 +00:00
PCompositorBridge.ipdl
PCompositorBridgeTypes.ipdlh
PCompositorManager.ipdl Backed out changeset 9c4ce17422de (bug 1867360) for causing crashes on PRemoteQuotaObjectChild. CLOSED TREE 2024-01-08 23:18:19 +02:00
PImageBridge.ipdl Backed out changeset 9c4ce17422de (bug 1867360) for causing crashes on PRemoteQuotaObjectChild. CLOSED TREE 2024-01-08 23:18:19 +02:00
PTexture.ipdl
PUiCompositorController.ipdl Backed out changeset 9c4ce17422de (bug 1867360) for causing crashes on PRemoteQuotaObjectChild. CLOSED TREE 2024-01-08 23:18:19 +02:00
PVideoBridge.ipdl Backed out changeset 9c4ce17422de (bug 1867360) for causing crashes on PRemoteQuotaObjectChild. CLOSED TREE 2024-01-08 23:18:19 +02:00
PWebRenderBridge.ipdl
RefCountedShmem.cpp
RefCountedShmem.h
RemoteContentController.cpp Bug 1715179 - Propagate VisualViewport rect and the root scrollable rect and use them on the main-thread. r=botond 2023-12-04 09:31:22 +00:00
RemoteContentController.h Bug 1715179 - Propagate VisualViewport rect and the root scrollable rect and use them on the main-thread. r=botond 2023-12-04 09:31:22 +00:00
ShadowLayerUtils.h
SharedPlanarYCbCrImage.cpp
SharedPlanarYCbCrImage.h
SharedRGBImage.cpp
SharedRGBImage.h
SharedSurfacesChild.cpp Bug 1869933 - Avoid allocating external image ID until ready for sharing with compositor process. r=gfx-reviewers,lsalzman 2023-12-14 20:08:59 +00:00
SharedSurfacesChild.h Bug 1869933 - Avoid allocating external image ID until ready for sharing with compositor process. r=gfx-reviewers,lsalzman 2023-12-14 20:08:59 +00:00
SharedSurfacesMemoryReport.h
SharedSurfacesParent.cpp Bug 1869346 - Rework how canvas accesses shared surfaces in the compositor process. r=gfx-reviewers,lsalzman 2023-12-11 20:44:44 +00:00
SharedSurfacesParent.h Bug 1869933 - Avoid allocating external image ID until ready for sharing with compositor process. r=gfx-reviewers,lsalzman 2023-12-14 20:08:59 +00:00
SurfaceDescriptor.h
SynchronousTask.h
TextureForwarder.h Backed out 12 changesets (bug 1795296, bug 1855742) as requested by aosmond a=backout 2023-12-19 17:25:55 +02:00
UiCompositorControllerChild.cpp
UiCompositorControllerChild.h
UiCompositorControllerMessageTypes.h
UiCompositorControllerParent.cpp
UiCompositorControllerParent.h
VideoBridgeChild.cpp Bug 1868396 - Part 2. Add plumbing to VideoBridge to allow off Compositor thread access to textures. r=gfx-reviewers,lsalzman 2023-12-05 16:25:52 +00:00
VideoBridgeChild.h Bug 1868396 - Part 2. Add plumbing to VideoBridge to allow off Compositor thread access to textures. r=gfx-reviewers,lsalzman 2023-12-05 16:25:52 +00:00
VideoBridgeParent.cpp Bug 1868396 - Part 2. Add plumbing to VideoBridge to allow off Compositor thread access to textures. r=gfx-reviewers,lsalzman 2023-12-05 16:25:52 +00:00
VideoBridgeParent.h Bug 1868396 - Part 2. Add plumbing to VideoBridge to allow off Compositor thread access to textures. r=gfx-reviewers,lsalzman 2023-12-05 16:25:52 +00:00
VideoBridgeUtils.h
WebRenderMessages.ipdlh Bug 1863846 convert MediaInfo::Rotation to WrRotation before creating a WebRender command r=aosmond 2023-11-27 19:40:47 +00:00