gecko-dev/gfx/2d
Andrew Osmond 4685d5aacf Bug 1918778 - Correct ownership/recycling issues with MacIOSurface. r=bradwerth
This patch corrects a few different issues related to recycling
MacIOSurface objects.

1) When recycling a surface, we must check that the cached surfaces
   match all of the requested parameters, not just the size. If we do
   not, we should just flush the whole cache immediately since they
   should all be created with the same parameters.

2) Allocations can fail, and we should check for failing to get a
   surface from the allocator and fall back if so.

3) Locking can fail, and we should check that return value at all of the
   call sites.

This may help resolve a number of otherwise difficult to understand
crash signatures. It may also solve display corruption issues in rare
cases where the parameters that changed were roughly equivalent such
that everything appears to work, but they differ enough to change the
presentation.

Differential Revision: https://phabricator.services.mozilla.com/D222205
2024-09-14 16:23:54 +00:00
..
unittest Bug 1843950: Change BasePoint::Length() return type to avoid truncation to int. r=botond 2024-05-09 00:02:55 +00:00
2D.h Bug 1896076 - patch 2 - Support passing both a local destination name and a URI when generating a hyperlink. r=gfx-reviewers,lsalzman 2024-05-29 17:19:38 +00:00
AutoHelpersWin.h
BaseCoord.h Bug 1814239 - Expose Point/Size rounded-to-multiple helpers, and use them from MaybeRoundToDisplayPixels. r=tnikkel,gfx-reviewers,nical 2023-02-06 12:28:47 +00:00
BaseMargin.h Bug 1908069 - Add border/padding/margin support to MathML token elements. r=emilio 2024-08-07 06:00:44 +00:00
BasePoint.h Bug 1843950: Change BasePoint::Length() return type to avoid truncation to int. r=botond 2024-05-09 00:02:55 +00:00
BasePoint3D.h Bug 1660405 - Move away from mozilla::IsInfinite in favor of std::isinf. r=nbp,media-playback-reviewers,alwu 2023-03-22 11:35:34 +00:00
BasePoint4D.h
BaseRect.h Bug 1855756 - Fix the edge cases when the angle is 0deg (or 90deg) for ray(). r=hiro 2023-10-20 03:41:10 +00:00
BaseSize.h Bug 1841478 - Use strongly-typed coordinates in the BaseSize constructor. r=botond 2023-07-10 02:59:01 +00:00
BezierUtils.cpp Bug 1787694 - Use a quadratic polynomial formula with less precision loss. r=gfx-reviewers,lsalzman 2022-10-10 07:24:40 +00:00
BezierUtils.h
BigEndianInts.h
Blur.cpp Bug 1856795 - Remove redundant member init r=emilio 2023-10-15 15:29:02 +00:00
Blur.h
BlurLS3.cpp
BlurNEON.cpp
BlurSSE2.cpp
BorrowedContext.h
BufferEdgePad.cpp
BufferEdgePad.h
BufferUnrotate.cpp
BufferUnrotate.h
ConicGradientEffectD2D1.cpp Bug 1851963 - Use unsigned char in ConicGradientEffectD2D1. r=jrmuizel 2024-02-22 17:12:06 +00:00
ConicGradientEffectD2D1.h
ConvolutionFilter.cpp Bug 1805757 - Move SkConvolver into the tree. r=aosmond 2022-12-15 05:53:16 +00:00
ConvolutionFilter.h Bug 1805757 - Move SkConvolver into the tree. r=aosmond 2022-12-15 05:53:16 +00:00
ConvolutionFilterAVX2.cpp Bug 1805757 - Move SkConvolver into the tree. r=aosmond 2022-12-15 05:53:16 +00:00
ConvolutionFilterNEON.cpp Bug 1805757 - Move SkConvolver into the tree. r=aosmond 2022-12-15 05:53:16 +00:00
ConvolutionFilterSSE2.cpp Bug 1805757 - Move SkConvolver into the tree. r=aosmond 2022-12-15 05:53:16 +00:00
Coord.h Bug 1843954 - Have `Coord * Primitive` and `Coord / Primitive` return `Coord`. r=botond 2023-09-14 00:37:04 +00:00
CriticalSection.h
DWriteSettings.cpp
DWriteSettings.h
DataSourceSurface.cpp
DataSourceSurfaceWrapper.h
DataSurfaceHelpers.cpp Bug 1817442. r=tnikkel 2023-03-03 20:46:24 +00:00
DataSurfaceHelpers.h
DrawEventRecorder.cpp Bug 1887818 - Prevent to call GPUVideoImage::GetAsSourceSurface() in CanvasRenderingContext2D::DrawImage() for RemoteDecoderVideoSubDescriptor::Tnull_t if CanvasTranslator is used r=gfx-reviewers,lsalzman 2024-03-28 06:24:41 +00:00
DrawEventRecorder.h Bug 1874461 - Filter spurious DrawTargetRecording::SetTransform calls. r=aosmond 2024-04-04 19:27:27 +00:00
DrawTarget.cpp Bug 1878182 - Instantiate Cairo scaled font for ScaledFontBase::GetPathForGlyphs. r=jfkthame 2024-02-02 20:40:37 +00:00
DrawTargetCairo.cpp Bug 1908587 - Backout changeset 8fe914e33e27 (bug 1892913, patch 22), so that we explicitly use a CGLayer-backed quartz surface when appropriate. r=gfx-reviewers,jrmuizel 2024-07-19 07:46:19 +00:00
DrawTargetCairo.h Bug 1896076 - patch 2 - Support passing both a local destination name and a URI when generating a hyperlink. r=gfx-reviewers,lsalzman 2024-05-29 17:19:38 +00:00
DrawTargetD2D1.cpp Bug 1873701. r=gfx-reviewers,lsalzman 2024-01-09 23:39:13 +00:00
DrawTargetD2D1.h Bug 1839490 - Add FillCircle to DrawTarget. r=lsalzman 2023-06-22 00:11:10 +00:00
DrawTargetOffset.cpp Bug 1746356 - Null-check the result of CreateSimilarDrawTarget. r=gfx-reviewers,lsalzman 2022-06-08 07:28:04 +00:00
DrawTargetOffset.h Bug 1746356 - Null-check the result of CreateSimilarDrawTarget. r=gfx-reviewers,lsalzman 2022-06-08 07:28:04 +00:00
DrawTargetRecording.cpp Bug 1917156 - Implement RemoveAllClips for DrawTargetRecording. r=aosmond 2024-09-06 15:20:15 +00:00
DrawTargetRecording.h Bug 1917156 - Implement RemoveAllClips for DrawTargetRecording. r=aosmond 2024-09-06 15:20:15 +00:00
DrawTargetSkia.cpp Bug 1910815 - Inflate glyph bounds to account for potential font hinting. r=aosmond 2024-08-18 23:17:52 +00:00
DrawTargetSkia.h Bug 1910869 - Support preblending in DrawTargetWebgl's glyph caching. r=aosmond 2024-08-15 22:50:24 +00:00
ExtendInputEffectD2D1.cpp
ExtendInputEffectD2D1.h
Factory.cpp Bug 1905674: Create an aggregate memory reporter for SourceSurfaceRawData. r=gfx-reviewers,lsalzman 2024-07-24 20:10:42 +00:00
FilterNodeD2D1.cpp Bug 1846683: Make assertions in FilterNodeD2D1::SetInput release assertions. r=jrmuizel 2023-09-02 12:22:22 +00:00
FilterNodeD2D1.h
FilterNodeSoftware.cpp Bug 1874372 - Fix typo in FilterNodeConvolveMatrixSoftware r=jrmuizel 2024-01-12 12:39:40 +00:00
FilterNodeSoftware.h Bug 1758188: Remove unneeded mutex from FilterNodeSoftware r=gfx-reviewers,mstange 2022-03-04 21:44:29 +00:00
FilterProcessing.cpp
FilterProcessing.h
FilterProcessingSIMD-inl.h Backed out changeset c8f96b912b44 (bug 1897783) for causing reftest failures CLOSED TREE 2024-06-23 09:35:16 +03:00
FilterProcessingSSE2.cpp
FilterProcessingScalar.cpp
Filters.h
FontVariation.h
GenericRefCounted.h
GradientStopsD2D.h
Helpers.h
HelpersCairo.h Bug 1816775 - Implement globalCompositeOperation "clear" without Windows. r=lsalzman 2023-03-31 07:50:57 +00:00
HelpersD2D.h Bug 1519636 - Reformat recent changes to the Google coding style r=emilio,necko-reviewers,geckoview-reviewers,application-update-reviewers,media-playback-reviewers,devtools-reviewers,anti-tracking-reviewers,profiler-reviewers,win-reviewers,migration-reviewers,padenot,mconley,nchevobbe,kershaw,gstoll,mstange,bytesized,m_kato 2024-07-17 11:15:31 +00:00
HelpersSkia.h Bug 1911231 - Clip fill/clear ops to viewport when possible. r=aosmond 2024-08-03 18:57:01 +00:00
HelpersWinFonts.h
ImageScaling.cpp
ImageScaling.h
ImageScalingSSE2.cpp
InlineTranslator.cpp Bug 1874803 - Add sentinel invalid recorded event type. r=gfx-reviewers,lsalzman 2024-01-16 03:38:34 +00:00
InlineTranslator.h Backed out changeset 4641c3dcf0c3 (bug 1876538) for causing mochitest-chrome failures on test_animation_observers_async.html. CLOSED TREE 2024-01-26 19:21:35 +02:00
IterableArena.h
Logging.h Bug 1906527 Part 1: Rename SurfaceFormat::YUV422 to YUY2, and rename YUV to YUV420. r=jgilbert 2024-08-05 17:59:15 +00:00
LoggingConstants.h
LuminanceNEON.cpp
LuminanceNEON.h
MMIHelpers.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
MacIOSurface.cpp Bug 1918778 - Correct ownership/recycling issues with MacIOSurface. r=bradwerth 2024-09-14 16:23:54 +00:00
MacIOSurface.h Bug 1918778 - Correct ownership/recycling issues with MacIOSurface. r=bradwerth 2024-09-14 16:23:54 +00:00
Matrix.cpp
Matrix.h Bug 1910492. Make ViewportUtils use Matrix4x4Flagged. r=layout-reviewers,emilio 2024-08-10 10:31:18 +00:00
MatrixFwd.h
NativeFontResource.cpp
NativeFontResourceDWrite.cpp Bug 1207753 - Add MOZ_UNANNOTATED to all Mutexes/Monitors r=nika,kershaw 2022-03-16 18:47:08 +00:00
NativeFontResourceDWrite.h
NativeFontResourceFreeType.cpp Bug 1775340 - Cleanup gfx/ includes r=sylvestre 2022-06-22 09:50:52 +00:00
NativeFontResourceFreeType.h
NativeFontResourceGDI.cpp
NativeFontResourceGDI.h
NativeFontResourceMac.cpp Bug 1803406 - Backout 2 changesets (6a82f1f120aa, 87d83c56fbe5) due to regression reported in bug 1858869. 2023-10-13 08:32:56 +00:00
NativeFontResourceMac.h
NumericTools.h Bug 1814239 - Expose Point/Size rounded-to-multiple helpers, and use them from MaybeRoundToDisplayPixels. r=tnikkel,gfx-reviewers,nical 2023-02-06 12:28:47 +00:00
Path.cpp Bug 1856795 - ride along: use = default; on some recently modified files r=emilio 2023-10-15 15:29:03 +00:00
PathAnalysis.h Bug 1801463 - Use a cursor in FlattenedPath to accelerate successive calls to ComputePointAtLength for SVG text-on-a-path layout. r=gfx-reviewers,nical 2023-02-06 15:01:20 +00:00
PathCairo.cpp Bug 1846079 - Ensure pruned point begins first sub-path if necessary. r=aosmond 2023-07-30 14:31:09 +00:00
PathCairo.h Bug 1846079 - Ensure pruned point begins first sub-path if necessary. r=aosmond 2023-07-30 14:31:09 +00:00
PathD2D.cpp Bug 1519636 - Reformat recent changes to the Google coding style r=emilio,necko-reviewers,geckoview-reviewers,application-update-reviewers,media-playback-reviewers,devtools-reviewers,anti-tracking-reviewers,profiler-reviewers,win-reviewers,migration-reviewers,padenot,mconley,nchevobbe,kershaw,gstoll,mstange,bytesized,m_kato 2024-07-17 11:15:31 +00:00
PathD2D.h Bug 1846079 - Ensure pruned point begins first sub-path if necessary. r=aosmond 2023-07-30 14:31:09 +00:00
PathHelpers.cpp Bug 1756175 - Implement roundRect for canvas2D. r=lsalzman,emilio 2023-02-21 19:41:49 +00:00
PathHelpers.h Bug 1839474 - Add support for directly stroking circles to DrawTarget. r=lsalzman 2023-06-20 19:28:48 +00:00
PathRecording.cpp Bug 1846685: Add PathOps::CheckedStreamToSink and use for event playback. r=jrmuizel 2023-09-02 16:13:30 +00:00
PathRecording.h Bug 1846685: Add PathOps::CheckedStreamToSink and use for event playback. r=jrmuizel 2023-09-02 16:13:30 +00:00
PathSkia.cpp Bug 1909718 - Guard against lossy PathSkia::AsRect conversions. r=aosmond 2024-08-09 15:31:07 +00:00
PathSkia.h Bug 1846079 - Ensure pruned point begins first sub-path if necessary. r=aosmond 2023-07-30 14:31:09 +00:00
PatternHelpers.h
Point.h Bug 1906716 - Remove MaybeIntSize that is used by only one caller. r=gfx-reviewers,bradwerth 2024-07-08 20:38:03 +00:00
Polygon.h
Quaternion.cpp
Quaternion.h
RadialGradientEffectD2D1.cpp Bug 1787085 - Fix undefined behavior from cast from float to char. r=gfx-reviewers,lsalzman 2022-09-02 01:37:03 +00:00
RadialGradientEffectD2D1.h
RecordedEvent.cpp Bug 1917156 - Implement RemoveAllClips for DrawTargetRecording. r=aosmond 2024-09-06 15:20:15 +00:00
RecordedEvent.h Bug 1917156 - Implement RemoveAllClips for DrawTargetRecording. r=aosmond 2024-09-06 15:20:15 +00:00
RecordedEventImpl.h Bug 1917156 - Implement RemoveAllClips for DrawTargetRecording. r=aosmond 2024-09-06 15:20:15 +00:00
RecordingTypes.h Bug 1850072: Initialize RecordedDrawTargetCreation::mHasExistingData. r=jrmuizel 2023-09-12 11:51:11 +00:00
Rect.h Bug 1911231 - Clip fill/clear ops to viewport when possible. r=aosmond 2024-08-03 18:57:01 +00:00
RectAbsolute.h
SFNTData.cpp Bug 1823401: Hash cmap as well as head tables for SFNTData::GetUniqueKey. r=jfkthame 2023-03-22 15:31:53 +00:00
SFNTData.h Bug 1823401: Hash cmap as well as head tables for SFNTData::GetUniqueKey. r=jfkthame 2023-03-22 15:31:53 +00:00
SIMD.h
SSEHelpers.h
SVGTurbulenceRenderer-inl.h
Scale.h
ScaleFactor.h Bug 1727376 - Capitalize template parameters in a few headers from layout and gfx. r=botond 2022-05-11 17:23:15 +00:00
ScaleFactors2D.h Bug 1773382 - Change the return type of GetPaintedLayerScaleForFrame() to MatrixScales. r=botond 2022-06-14 21:54:55 +00:00
ScaledFontBase.cpp Bug 1878182 - Instantiate Cairo scaled font for ScaledFontBase::GetPathForGlyphs. r=jfkthame 2024-02-02 20:40:37 +00:00
ScaledFontBase.h
ScaledFontDWrite.cpp Bug 1909019 - Use ParamTraits_TiedFields/_IsEnumCase in WebRenderMessageUtils instead of PlainOldDataSerializer. (complete) r=gw,mccr8,ahale 2024-07-26 23:51:26 +00:00
ScaledFontDWrite.h Bug 1819272 - Implement ScaledFontDWrite::HasVariationSettings(), so that we can use the print-as-paths option for PDF output with variation fonts on Windows. r=gfx-reviewers,lsalzman 2023-03-03 14:06:07 +00:00
ScaledFontFontconfig.cpp Bug 1909019 - Use ParamTraits_TiedFields/_IsEnumCase in WebRenderMessageUtils instead of PlainOldDataSerializer. (complete) r=gw,mccr8,ahale 2024-07-26 23:51:26 +00:00
ScaledFontFontconfig.h Bug 1773936 - Apply Skia-equivalent subpixel rounding in DrawTargetWebgl. r=aosmond,gfx-reviewers 2022-06-16 21:39:07 +00:00
ScaledFontFreeType.cpp Bug 1909019 - Use ParamTraits_TiedFields/_IsEnumCase in WebRenderMessageUtils instead of PlainOldDataSerializer. (complete) r=gw,mccr8,ahale 2024-07-26 23:51:26 +00:00
ScaledFontFreeType.h Bug 1773936 - Apply Skia-equivalent subpixel rounding in DrawTargetWebgl. r=aosmond,gfx-reviewers 2022-06-16 21:39:07 +00:00
ScaledFontMac.cpp Bug 1909019 - Use ParamTraits_TiedFields/_IsEnumCase in WebRenderMessageUtils instead of PlainOldDataSerializer. (complete) r=gw,mccr8,ahale 2024-07-26 23:51:26 +00:00
ScaledFontMac.h Bug 1910869 - Support preblending in DrawTargetWebgl's glyph caching. r=aosmond 2024-08-15 22:50:24 +00:00
ScaledFontWin.cpp Bug 1890216 - Fix Skia API usage in Gecko for m125 update. r=aosmond 2024-05-15 01:57:52 +00:00
ScaledFontWin.h Bug 1773936 - Apply Skia-equivalent subpixel rounding in DrawTargetWebgl. r=aosmond,gfx-reviewers 2022-06-16 21:39:07 +00:00
ShadersD2D.fx
ShadersD2D.h
ShadersD2D1.h
ShadersD2D1.hlsl
SkConvolver.cpp Bug 1715136 - Make SkConvolutionFilter1D::AddFilter fallible. r=aosmond 2024-03-18 02:58:39 +00:00
SkConvolver.h Bug 1715136 - Make SkConvolutionFilter1D::AddFilter fallible. r=aosmond 2024-03-18 02:58:39 +00:00
SourceSurfaceCairo.cpp
SourceSurfaceCairo.h
SourceSurfaceD2D1.cpp
SourceSurfaceD2D1.h
SourceSurfaceRawData.cpp Bug 1905674: Create an aggregate memory reporter for SourceSurfaceRawData. r=gfx-reviewers,lsalzman 2024-07-24 20:10:42 +00:00
SourceSurfaceRawData.h Bug 1905674: Create an aggregate memory reporter for SourceSurfaceRawData. r=gfx-reviewers,lsalzman 2024-07-24 20:10:42 +00:00
SourceSurfaceSkia.cpp Bug 1890216 - Fix Skia API usage in Gecko for m125 update. r=aosmond 2024-05-15 01:57:52 +00:00
SourceSurfaceSkia.h Bug 1752841 - Add ExtractSubrect API to SourceSurface. r=jrmuizel 2022-12-07 21:06:32 +00:00
StackArray.h
Swizzle.cpp Bug 1751205 - Part 1. Add Swizzle/PremultiplyYFlipData helper methods. r=gfx-reviewers,lsalzman,jgilbert 2022-02-01 13:20:49 +00:00
Swizzle.h Bug 1751205 - Part 1. Add Swizzle/PremultiplyYFlipData helper methods. r=gfx-reviewers,lsalzman,jgilbert 2022-02-01 13:20:49 +00:00
SwizzleAVX2.cpp
SwizzleNEON.cpp
SwizzleSSE2.cpp
SwizzleSSSE3.cpp
Tools.h Bug 1277372 - Move away from "mozilla/TypeTraits.h". r=geckoview-reviewers,sergesanspaille,m_kato 2023-04-17 13:50:11 +00:00
Triangle.h
Types.cpp Bug 1906527 Part 3: Add YUV422P10 and NV16 formats. r=gfx-reviewers,ahale 2024-08-05 17:59:15 +00:00
Types.h Bug 1906527 Part 3: Add YUV422P10 and NV16 formats. r=gfx-reviewers,ahale 2024-08-05 17:59:15 +00:00
UnscaledFontDWrite.h Bug 1901555: Remove file attribute check in GetFontFileName. r=lsalzman 2024-06-14 10:39:56 +00:00
UnscaledFontFreeType.cpp Bug 1798036 - Attach a SharedFTFaceData (recording the filename) when instantiating SharedFTFace for an installed variation font. r=lsalzman 2022-11-10 17:24:11 +00:00
UnscaledFontFreeType.h
UnscaledFontGDI.h
UnscaledFontMac.h Bug 1866105 - Add the font file path to the font descriptor sent to webrender on macOS. r=gfx-reviewers,lsalzman 2023-12-05 10:59:06 +00:00
UserData.h Bug 1786136 - Make UserData thread-safe. r=jrmuizel 2022-09-01 05:29:14 +00:00
genshaders.sh
gfx2d.sln
gfx2d.vcxproj
moz.build Bug 1901192 - Force uploading recycled DataSourceSurface by CanvasTranslator r=gfx-reviewers,lsalzman 2024-06-10 17:35:43 +00:00