gecko-dev/gfx/thebes
Lee Salzman 0978159170 Bug 1829026 - Update CanvasTranslator to work with DrawTargetWebgl. r=aosmond
This adds the necessary infrastructure for CanvasTranslator to allocate DrawTargetWebgl
instead of just allocating TextureData, and to use RemoteTextureMap to handle sending
the DrawTargetWebgl frames to the compositor.

This optimizes snapshot transport to use fewer copies to and from shmems when we know
the snapshot contents can be sourced from a shmem.

This adds a blocking mechanism separate from deactivation so that existing DrawTargetWebgls
can continue processing events while denying further ones from being created in the event
that allocating further DrawTargetWebgls might cause problems, but so that we don't disrupt
canvases that are already in flight.

PersistentBufferProviderAccelerated still remains the buffer provider for the new setup,
but just allocates a single RecordedTextureData internally. Since DrawTargetWebgl already
does its own swap chain management internally, we do not want to use the multiple texture
client strategy that PersistentBufferProviderShared does.

This adds a fallback mechanism such that if DrawTargetWebgl allocation fails, a TextureData
is allocated instead that still sends results to RemoteTextureMap. This has the advantage
that we don't need to synchronously block in the content process to verify if acceleration
succeeded, as the costs of such blocking are rather extreme and we must still produce the
rendered frame to ensure the user sees the correct result if the speculative acceleration
failed. It then notifies the content process asynchronously via the refresh mechanism to
try to recreate a non-accelerated buffer provider when it is ready.

There is one additional hitch in RemoteTextureMap that we need to add a mechanism to deal
with the setup of the RemoteTextureOwner. When display list building initially needs to get
the remote texture, the RemoteTextureOwner might not exist yet. In this case, we need to add
a block to ensure we wait for that to occur so that we do not render an erroneous result.
Previously, this block was handled in ClientWebGLContext. Since that is no longer used,
the block must be reinstated somewhere else until a non-blocking mechanism for display list
building to proceed with a stub texture host wrapper can be implemented.

Currently this leaves the gfx.canvas.remote and gfx.canvas.accelerated prefs as separate
toggles rather than trying to lump everything into one mechanism. While this may be desirable
in the future, currently Direct2D remote canvas is a separate acceleration mechanism that
needs to co-exist with the WebGL acceleration, and so being able to toggle both on or off
for testing is desirable.

Differential Revision: https://phabricator.services.mozilla.com/D194352
2023-12-12 07:35:03 +00:00
..
cairo-xlib-utils.h
CJKCompatSVS.cpp Bug 1519636 - Reformat recent changes to the Google coding style r=emilio,media-playback-reviewers,padenot 2023-12-04 10:09:36 +00:00
COLRFonts.cpp
COLRFonts.h
CoreTextFontList.cpp Bug 1803406 - Backout 2 changesets (6a82f1f120aa, 87d83c56fbe5) due to regression reported in bug 1858869. 2023-10-13 08:32:56 +00:00
CoreTextFontList.h Bug 1856465 - Remove CoreTextFontList::LookupSystemFont. r=jfkthame 2023-10-04 21:30:02 +00:00
d3dkmtQueryStatistics.h
D3D11Checks.cpp
D3D11Checks.h
DeviceManagerDx.cpp Bug 1866021 - Set to MultithreadProtected during creating CompositorDevice r=gfx-reviewers,jrmuizel 2023-11-29 04:16:19 +00:00
DeviceManagerDx.h
DisplayConfigWindows.cpp Bug 1855955 - Remove useless <iostream> includes r=emilio 2023-09-29 14:15:53 +00:00
DisplayConfigWindows.h
DrawMode.h
gencjkcisvs.py
genLanguageTagList.pl
gfx2DGlue.h
gfxAlphaRecovery.cpp
gfxAlphaRecovery.h
gfxAlphaRecoverySSE2.cpp
gfxAndroidPlatform.cpp Bug 1858843 - Remove pre-Lollipop code from C/C++. r=geckoview-reviewers,media-playback-reviewers,padenot,owlish,jnicol 2023-11-09 17:39:59 +00:00
gfxAndroidPlatform.h
gfxASurface.cpp
gfxASurface.h
gfxBaseSharedMemorySurface.cpp
gfxBaseSharedMemorySurface.h
gfxBlur.cpp
gfxBlur.h
gfxColor.h
gfxContext.cpp Bug 1864537 - Drop an unused deviceOffset parameter. r=jfkthame 2023-11-14 04:48:54 +00:00
gfxContext.h Bug 1864537 - Drop an unused deviceOffset parameter. r=jfkthame 2023-11-14 04:48:54 +00:00
gfxCoreTextShaper.cpp Bug 1856035 - Merge implementations of CreateCTFontFromCGFontWithVariations from gfxMacFont.cpp and 2d/ScaledFontMac.cpp (no change in behavior). r=gfx-reviewers,lsalzman 2023-10-10 08:21:42 +00:00
gfxCoreTextShaper.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
gfxDrawable.cpp
gfxDrawable.h
gfxDWriteCommon.cpp
gfxDWriteCommon.h
gfxDWriteFontList.cpp Bug 1854090 - Omit psnames of fonts with family-name *.tmp from src:local() lookups on Windows. r=jwatt 2023-10-23 16:05:44 +00:00
gfxDWriteFontList.h Bug 1852806 - Remove macros for older Windows SDK from gfx/. r=gfx-reviewers,lsalzman 2023-09-15 03:19:26 +00:00
gfxDWriteFonts.cpp Bug 1856637 - Ignore gfxDWriteFont::UpdateSystemTextVars() call if the gfxVars are not yet initialized. r=gfx-reviewers,lsalzman 2023-10-05 10:53:52 +00:00
gfxDWriteFonts.h
gfxEnv.h
gfxFailure.h
gfxFcPlatformFontList.cpp Bug 1854950 - Disable font-fingerprinting protection if hardly any standard distro fonts are present, as it would totally break content rendering. r=dholbert,emilio 2023-09-28 15:56:54 +00:00
gfxFcPlatformFontList.h
gfxFont.cpp Bug 1864512 - Don't bother to set params.dt in GetScaledFont. r=jfkthame 2023-11-13 21:49:05 +00:00
gfxFont.h Bug 1721612 - (more followup) Try to make clang-tidy happier, and cache the tracking value for a given px size. r=gfx-reviewers,lsalzman 2023-11-11 10:36:18 +00:00
gfxFontConstants.h
gfxFontEntry.cpp Bug 1721612 - (more followup) Try to make clang-tidy happier, and cache the tracking value for a given px size. r=gfx-reviewers,lsalzman 2023-11-11 10:36:18 +00:00
gfxFontEntry.h Bug 1721612 - (more followup) Try to make clang-tidy happier, and cache the tracking value for a given px size. r=gfx-reviewers,lsalzman 2023-11-11 10:36:18 +00:00
gfxFontFeatures.cpp
gfxFontFeatures.h
gfxFontInfoLoader.cpp
gfxFontInfoLoader.h
gfxFontMissingGlyphs.cpp
gfxFontMissingGlyphs.h
gfxFontPrefLangList.h
gfxFontSrcPrincipal.cpp
gfxFontSrcPrincipal.h
gfxFontSrcURI.cpp
gfxFontSrcURI.h
gfxFontUtils.cpp
gfxFontUtils.h
gfxFontVariations.h
gfxFT2FontBase.cpp
gfxFT2FontBase.h
gfxFT2FontList.cpp
gfxFT2FontList.h
gfxFT2Fonts.cpp
gfxFT2Fonts.h
gfxFT2Utils.cpp
gfxFT2Utils.h
gfxGDIFont.cpp
gfxGDIFont.h
gfxGDIFontList.cpp
gfxGDIFontList.h
gfxGlyphExtents.cpp
gfxGlyphExtents.h
gfxGradientCache.cpp
gfxGradientCache.h
gfxGraphiteShaper.cpp
gfxGraphiteShaper.h
gfxHarfBuzzShaper.cpp
gfxHarfBuzzShaper.h
gfxImageSurface.cpp
gfxImageSurface.h
gfxLanguageTagList.cpp
gfxLineSegment.h Bug 1856795 - Remove redundant member init r=emilio 2023-10-15 15:29:02 +00:00
gfxMacFont.cpp Bug 1721612 - (followup) Rename AdjustAdvancesForSyntheticBold to ApplyTrackingToClusters, and clamp the adjusted advance to avoid becoming negative. r=gfx-reviewers,lsalzman 2023-11-11 10:36:18 +00:00
gfxMacFont.h Bug 1862061 - Remove -moz-font-smoothing-background-color. r=gfx-reviewers,desktop-theme-reviewers,devtools-reviewers,dao,gw 2023-11-01 09:14:29 +00:00
gfxMacPlatformFontList.h Backed out 2 changesets (bug 1803406) for causing OSX failures/leakchecks CLOSED TREE 2023-11-08 07:23:43 +02:00
gfxMacPlatformFontList.mm Backed out 2 changesets (bug 1803406) for causing OSX failures/leakchecks CLOSED TREE 2023-11-08 07:23:43 +02:00
gfxMacUtils.cpp
gfxMacUtils.h
gfxMathTable.cpp
gfxMathTable.h
gfxMatrix.h
gfxOTSUtils.h
gfxPattern.cpp
gfxPattern.h
gfxPlatform.cpp Bug 1829026 - Update CanvasTranslator to work with DrawTargetWebgl. r=aosmond 2023-12-12 07:35:03 +00:00
gfxPlatform.h Bug 1859625 Part 3: Stop sending the GetOutputColorProfileData message. r=ipc-reviewers,mccr8 2023-11-27 21:11:10 +00:00
gfxPlatformFontList.cpp Bug 1863574: apply code formatting via Lando 2023-12-07 10:32:19 +00:00
gfxPlatformFontList.h Bug 1855506: Add assertions to validate the return value of gfxPlatformFontList::FindAndAddFamilies. r=jfkthame 2023-09-28 17:05:26 +00:00
gfxPlatformGtk.cpp Bug 1843782 - WebGL software rendering when mesa/vmwgfx driver detected r=gfx-reviewers,bradwerth,jrmuizel,jgilbert 2023-11-29 21:45:27 +00:00
gfxPlatformGtk.h Bug 1859625 Part 2: Stop sending the GetGraphicsDeviceInitData message. r=ipc-reviewers,mccr8 2023-11-27 21:11:10 +00:00
gfxPlatformMac.cpp Bug 1868634. Replace deprecated CGColorSpaceCopyICCProfile calls. r=haik,mac-reviewers 2023-12-09 16:41:35 +00:00
gfxPlatformMac.h Backed out 2 changesets (bug 1803406) for causing OSX failures/leakchecks CLOSED TREE 2023-11-08 07:23:43 +02:00
gfxPlatformWorker.cpp
gfxPlatformWorker.h
gfxPoint.h
gfxQuad.h
gfxQuartzNativeDrawing.cpp
gfxQuartzNativeDrawing.h
gfxQuartzSurface.cpp
gfxQuartzSurface.h
gfxQuaternion.h
gfxRect.h
gfxScriptItemizer.cpp
gfxScriptItemizer.h
gfxSharedImageSurface.h
gfxSkipChars.cpp
gfxSkipChars.h
gfxSVGGlyphs.cpp Bug 1865480. Rename nsIContentViewer to nsIDocumentViewer. r=layout-reviewers,emilio 2023-11-21 12:45:59 +00:00
gfxSVGGlyphs.h Bug 1865480. Rename nsIContentViewer to nsIDocumentViewer. r=layout-reviewers,emilio 2023-11-21 12:45:59 +00:00
gfxTextRun.cpp Bug 1834320 - Don't apply justification spacing when there are further tabs on the line. r=layout-reviewers,emilio 2023-11-03 09:06:29 +00:00
gfxTextRun.h Bug 1853595 - Ensure tab-size is resolved using the font that would actually be used to render the space character, even if that's not the "first available font" as defined by CSS Fonts. r=dholbert 2023-10-01 10:50:03 +00:00
gfxTypes.h
gfxUserFontSet.cpp Bug 1857285 - Free sanitized font data on early-out. r=aosmond 2023-10-09 07:28:25 +00:00
gfxUserFontSet.h Bug 1851118 - Defer url() font load start until safe. r=jfkthame,masayuki 2023-09-29 17:12:24 +00:00
gfxUtils.cpp Bug 1852541: Do not randomize the canvas if it is one uniform pattern r=timhuang,jgilbert 2023-10-11 14:56:45 +00:00
gfxUtils.h
gfxWindowsNativeDrawing.cpp
gfxWindowsNativeDrawing.h
gfxWindowsPlatform.cpp Bug 1859625 Part 3: Stop sending the GetOutputColorProfileData message. r=ipc-reviewers,mccr8 2023-11-27 21:11:10 +00:00
gfxWindowsPlatform.h
gfxWindowsSurface.cpp
gfxWindowsSurface.h
gfxXlibSurface.cpp
gfxXlibSurface.h
moz.build Bug 1852806 - Remove macros for older Windows SDK from gfx/. r=gfx-reviewers,lsalzman 2023-09-15 03:19:26 +00:00
nsIFontLoadCompleteCallback.idl
PrintPromise.h
PrintTarget.cpp
PrintTarget.h
PrintTargetCG.h
PrintTargetCG.mm Bug 1868710. Guard the mixed sheet size code with the correct pref. r=AlaskanEmily 2023-12-08 01:11:19 +00:00
PrintTargetPDF.cpp Bug 1868710. Guard the mixed sheet size code with the correct pref. r=AlaskanEmily 2023-12-08 01:11:19 +00:00
PrintTargetPDF.h
PrintTargetRecording.cpp
PrintTargetRecording.h
PrintTargetSkPDF.cpp
PrintTargetSkPDF.h
PrintTargetThebes.cpp
PrintTargetThebes.h
PrintTargetWindows.cpp
PrintTargetWindows.h
SharedFontList-impl.h Bug 1862777 - Lock the list in UpdateShmBlocks. r=gfx-reviewers,lsalzman 2023-11-22 19:06:32 +00:00
SharedFontList.cpp Bug 1862777 - Lock the list in UpdateShmBlocks. r=gfx-reviewers,lsalzman 2023-11-22 19:06:32 +00:00
SharedFontList.h Bug 1839051 - Use std::sort for nsTArray and deprecate NS_QuickSort. r=emilio,nika,janv,dom-storage-reviewers 2023-12-11 06:53:25 +00:00
SkMemoryReporter.cpp
SkMemoryReporter.h
SoftwareVsyncSource.cpp
SoftwareVsyncSource.h
StandardFonts-linux.inc
StandardFonts-macos.inc
StandardFonts-win10.inc Bug 1861838 - Include Miriam Fixed in the Win10 lang-pack fonts list. r=layout-reviewers,emilio 2023-10-30 15:35:34 +00:00
ThebesRLBox.h
ThebesRLBoxTypes.h
VsyncSource.cpp
VsyncSource.h
XlibDisplay.cpp
XlibDisplay.h