fune/gfx/layers
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
..
apz Bug 1846124 - Make zoomToFocuedInput work for element in position:fixed subtree. r=botond 2024-01-09 00:02:49 +00:00
client Bug 1873075 - Delay UnregisterTextureOwner until all potential UseRemoteTextures are received. r=aosmond 2024-01-09 11:53:14 +00:00
composite Bug 1868927 - Remove RemoteTextureHostWrapper's async mode r=gfx-reviewers,lsalzman 2024-01-07 22:47:05 +00:00
d3d11 Bug 1871811 - Restore some locking in CanvasTranslator. r=aosmond,gfx-reviewers 2023-12-25 17:07:34 +00:00
ipc Bug 1873075 - Delay UnregisterTextureOwner until all potential UseRemoteTextures are received. r=aosmond 2024-01-09 11:53:14 +00:00
layerviewer Bug 1826063 - Automatic fixes for enabling Prettier on production xhtml and html files. r=mossop,webdriver-reviewers,webcompat-reviewers,geckoview-reviewers,extension-reviewers,settings-reviewers,application-update-reviewers,credential-management-reviewers,fxview-reviewers,sgalich,nalexander,devtools-reviewers,sclements,denschub,robwu,owlish 2023-05-20 12:26:56 +00:00
opengl Backed out 3 changesets (bug 1871467) for causing reftest failures on transformations-1.html. CLOSED TREE 2023-12-22 10:12:28 +02:00
wr Bug 1873075 - Delay UnregisterTextureOwner until all potential UseRemoteTextures are received. r=aosmond 2024-01-09 11:53:14 +00:00
AndroidHardwareBuffer.cpp
AndroidHardwareBuffer.h
AnimationHelper.cpp Bug 1846516 - [css-properties-values-api] Use AnimatedPropertyID to communicate between Gecko and Servo. r=emilio,layout-reviewers,firefox-style-system-reviewers 2023-12-18 09:24:08 +00:00
AnimationHelper.h Bug 1832173 - Remove HasArcFFI for AnimationValue. r=boris 2023-05-11 08:25:36 +00:00
AnimationInfo.cpp Bug 1871194 - Improve nsCSSPropertyIDSet interaction with AnimatedPropertyID. r=zrhoffman 2023-12-21 16:08:47 +00:00
AnimationInfo.h
AnimationStorageData.h Bug 1832173 - Remove HasArcFFI for AnimationValue. r=boris 2023-05-11 08:25:36 +00:00
AtomicRefCountedWithFinalize.h
AxisPhysicsModel.cpp
AxisPhysicsModel.h
AxisPhysicsMSDModel.cpp
AxisPhysicsMSDModel.h
BSPTree.cpp
BSPTree.h
BufferTexture.cpp Backed out 3 changesets (bug 1871467) for causing reftest failures on transformations-1.html. CLOSED TREE 2023-12-22 10:12:28 +02:00
BufferTexture.h
BuildConstants.h Bug 1833855 [Linux] Replace kIsX11 and kIsWayland with kIsLinux r=lsalzman 2023-06-22 13:42:39 +00:00
CanvasDrawEventRecorder.cpp Bug 1871613 - Ensure CanvasDrawEventRecorder releases external surface dependencies. r=gfx-reviewers,lsalzman 2023-12-23 01:34:31 +00:00
CanvasDrawEventRecorder.h Bug 1871613 - Ensure CanvasDrawEventRecorder releases external surface dependencies. r=gfx-reviewers,lsalzman 2023-12-23 01:34:31 +00:00
CanvasRenderer.cpp Bug 1833855 [Linux] Replace kIsX11 and kIsWayland with kIsLinux r=lsalzman 2023-06-22 13:42:39 +00:00
CanvasRenderer.h
CompositionRecorder.cpp Bug 1816559 - Remote compositor recording from GPU process r=mstange 2023-03-14 13:31:37 +00:00
CompositionRecorder.h Bug 1816559 - Remote compositor recording from GPU process r=mstange 2023-03-14 13:31:37 +00:00
Compositor.cpp Bug 1837816 - Make selector cache not tied to a document. r=media-playback-reviewers,karlt,mstange 2023-06-16 17:20:42 +00:00
Compositor.h Bug 1754851 - Remove Compositor::RecordFrame r=mstange 2023-05-29 18:37:27 +00:00
CompositorAnimationStorage.cpp Bug 1820070 - Part 4: Send offset-position to the compositor. r=emilio 2023-06-06 21:40:52 +00:00
CompositorAnimationStorage.h Bug 1832173 - Remove HasArcFFI for AnimationValue. r=boris 2023-05-11 08:25:36 +00:00
CompositorTypes.cpp
CompositorTypes.h Merge central to autoland. CLOSED TREE 2023-12-19 17:39:20 +02:00
D3D11ShareHandleImage.cpp Bug 1861605 - Use IDXGIResource1::CreateSharedHandle() instead of IDXGIResource::GetSharedHandle() r=gfx-reviewers,lsalzman 2023-12-19 09:23:21 +00:00
D3D11ShareHandleImage.h Bug 1863367 - Part 7. Implement BuildSurfaceDescriptorBuffer on Image subclasses for Windows. r=gfx-reviewers,lsalzman 2023-11-14 02:04:06 +00:00
D3D11TextureIMFSampleImage.cpp Bug 1863367 - Part 7. Implement BuildSurfaceDescriptorBuffer on Image subclasses for Windows. r=gfx-reviewers,lsalzman 2023-11-14 02:04:06 +00:00
D3D11TextureIMFSampleImage.h Bug 1863367 - Part 7. Implement BuildSurfaceDescriptorBuffer on Image subclasses for Windows. r=gfx-reviewers,lsalzman 2023-11-14 02:04:06 +00:00
D3D11YCbCrImage.cpp Bug 1861605 - Use IDXGIResource1::CreateSharedHandle() instead of IDXGIResource::GetSharedHandle() r=gfx-reviewers,lsalzman 2023-12-19 09:23:21 +00:00
D3D11YCbCrImage.h Bug 1863367 - Part 7. Implement BuildSurfaceDescriptorBuffer on Image subclasses for Windows. r=gfx-reviewers,lsalzman 2023-11-14 02:04:06 +00:00
DcompSurfaceImage.cpp Bug 1855886 - Destroy RenderTextureHost by the created TextureHost r=gfx-reviewers,lsalzman 2023-10-02 00:29:00 +00:00
DcompSurfaceImage.h
DirectionUtils.h
DMABUFSurfaceImage.cpp Bug 1863367 - Part 5. Implement DMABufSurfaceImage::BuildSurfaceDescriptorBuffer for Linux. r=gfx-reviewers,lsalzman 2023-11-14 02:04:05 +00:00
DMABUFSurfaceImage.h Bug 1863367 - Part 5. Implement DMABufSurfaceImage::BuildSurfaceDescriptorBuffer for Linux. r=gfx-reviewers,lsalzman 2023-11-14 02:04:05 +00:00
Effects.cpp
Effects.h
FrameMetrics.cpp Bug 1856088 - Handle scroll anchor adjustments as an absolute scroll position updates behind a pref. r=botond 2023-10-25 05:55:26 +00:00
FrameMetrics.h Bug 1856088 - Handle scroll anchor adjustments as an absolute scroll position updates behind a pref. r=botond 2023-10-25 05:55:26 +00:00
GLImages.cpp Bug 1866020 - Override buggy colorspace conversion on Pixel devices. r=gw,padenot,geckoview-reviewers,owlish 2023-12-14 10:45:08 +00:00
GLImages.h Bug 1866020 - Override buggy colorspace conversion on Pixel devices. r=gw,padenot,geckoview-reviewers,owlish 2023-12-14 10:45:08 +00:00
GPUVideoImage.h Bug 1749047 - Attach color space information to decoded video frame going over IPC. r=pehrsons 2023-12-22 21:39:17 +00:00
ImageContainer.cpp Bug 1863846 change VideoInfo::Rotation to non-nested enum class VideoRotation so that it can be forward declared r=aosmond,media-playback-reviewers,padenot 2023-11-29 01:44:45 +00:00
ImageContainer.h Bug 1863846 change VideoInfo::Rotation to non-nested enum class VideoRotation so that it can be forward declared r=aosmond,media-playback-reviewers,padenot 2023-11-29 01:44:45 +00:00
ImageDataSerializer.cpp
ImageDataSerializer.h
ImageTypes.h
IMFYCbCrImage.cpp Bug 1664063 - Ensure we consistently handle all errors from IDXGIKeyedMutex::AcquireSync. r=gfx-reviewers,lsalzman 2023-12-18 16:41:54 +00:00
IMFYCbCrImage.h
IPDLActor.h
LayersTypes.cpp
LayersTypes.h Bug 1873075 - Delay UnregisterTextureOwner until all potential UseRemoteTextures are received. r=aosmond 2024-01-09 11:53:14 +00:00
LayerUserData.h
MacIOSurfaceHelpers.cpp Bug 1863367 - Part 6. Implement MacIOSurfaceImage::BuildSurfaceDescriptorBuffer for OSX. r=gfx-reviewers,lsalzman 2023-11-14 02:04:06 +00:00
MacIOSurfaceHelpers.h Bug 1863367 - Part 6. Implement MacIOSurfaceImage::BuildSurfaceDescriptorBuffer for OSX. r=gfx-reviewers,lsalzman 2023-11-14 02:04:06 +00:00
MacIOSurfaceImage.cpp Bug 1863367 - Part 6. Implement MacIOSurfaceImage::BuildSurfaceDescriptorBuffer for OSX. r=gfx-reviewers,lsalzman 2023-11-14 02:04:06 +00:00
MacIOSurfaceImage.h Bug 1863367 - Part 6. Implement MacIOSurfaceImage::BuildSurfaceDescriptorBuffer for OSX. r=gfx-reviewers,lsalzman 2023-11-14 02:04:06 +00:00
MemoryPressureObserver.cpp
MemoryPressureObserver.h
moz.build Bug 1868928 - Handle ApplyAsyncImageForPipeline() for AsyncImagePipeline of sync WebRenderImageHost after waiting RemoteTextures ready at WebRenderAPI r=gfx-reviewers,lsalzman 2024-01-05 21:45:54 +00:00
NativeLayer.h
NativeLayerCA.h Bug 1519636 - Reformat recent changes to the Google coding style r=emilio,media-playback-reviewers,padenot 2023-12-04 10:09:36 +00:00
NativeLayerCA.mm Bug 1868927 - Remove RemoteTextureHostWrapper's async mode r=gfx-reviewers,lsalzman 2024-01-07 22:47:05 +00:00
NativeLayerWayland.cpp Bug 1829303 [Wayland] Remove thread specific wayland display objects r=emilio 2023-04-26 20:57:17 +00:00
NativeLayerWayland.h
OOPCanvasRenderer.h
PersistentBufferProvider.cpp Bug 1873075 - Delay UnregisterTextureOwner until all potential UseRemoteTextures are received. r=aosmond 2024-01-09 11:53:14 +00:00
PersistentBufferProvider.h Bug 1873075 - Delay UnregisterTextureOwner until all potential UseRemoteTextures are received. r=aosmond 2024-01-09 11:53:14 +00:00
ProfilerScreenshots.cpp
ProfilerScreenshots.h
RecordedCanvasEventImpl.h Bug 1873075 - Delay UnregisterTextureOwner until all potential UseRemoteTextures are received. r=aosmond 2024-01-09 11:53:14 +00:00
RemoteTextureMap.cpp Bug 1873075 - Delay UnregisterTextureOwner until all potential UseRemoteTextures are received. r=aosmond 2024-01-09 11:53:14 +00:00
RemoteTextureMap.h Bug 1873075 - Delay UnregisterTextureOwner until all potential UseRemoteTextures are received. r=aosmond 2024-01-09 11:53:14 +00:00
RepaintRequest.cpp
RepaintRequest.h Bug 1856795 - Remove redundant member init r=emilio 2023-10-15 15:29:02 +00:00
SampleTime.cpp
SampleTime.h
ScreenshotGrabber.cpp
ScreenshotGrabber.h
ScrollableLayerGuid.cpp
ScrollableLayerGuid.h
ScrollbarData.h Bug 1815372 - Introduce OuterCSSPixel to represent quantities in CSS pixels of content surrounding a scroll frame. r=dlrobertson 2023-03-03 23:57:14 +00:00
ShareableCanvasRenderer.cpp Bug 1873075 - Delay UnregisterTextureOwner until all potential UseRemoteTextures are received. r=aosmond 2024-01-09 11:53:14 +00:00
ShareableCanvasRenderer.h Bug 1858361 - Call CanvasContext::SwapChainPresent() from ShareableCanvasRenderer::UpdateCompositableClient() r=gfx-reviewers,nical 2023-12-12 10:45:51 +00:00
SourceSurfaceSharedData.cpp
SourceSurfaceSharedData.h
SurfacePool.h
SurfacePoolCA.h Bug 1824069 - Make gfx/layers buildable outside of a unified build environment r=andi 2023-03-24 07:01:08 +00:00
SurfacePoolCA.mm Bug 1851529 - Set clang-format ColumnLimit consistently. r=sylvestre,necko-reviewers,kershaw 2023-09-05 11:23:01 +00:00
SurfacePoolWayland.cpp
SurfacePoolWayland.h
SyncObject.cpp
SyncObject.h Bug 1861605 - Use IDXGIResource1::CreateSharedHandle() instead of IDXGIResource::GetSharedHandle() r=gfx-reviewers,lsalzman 2023-12-19 09:23:21 +00:00
TextureSourceProvider.cpp
TextureSourceProvider.h
TextureWrapperImage.cpp
TextureWrapperImage.h
TransactionIdAllocator.h
TreeTraversal.h
UpdateImageHelper.h
ZoomConstraints.cpp
ZoomConstraints.h