Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 2f7775558dc854a5ccbf94798d75f1ace93dbccd
https://github.com/WebKit/WebKit/commit/2f7775558dc854a5ccbf94798d75f1ace93dbccd
Author: Said Abou-Hallawa <[email protected]>
Date: 2023-08-23 (Wed, 23 Aug 2023)
Changed paths:
M Source/WebCore/Headers.cmake
M Source/WebCore/Sources.txt
M Source/WebCore/WebCore.xcodeproj/project.pbxproj
M Source/WebCore/html/HTMLCanvasElement.cpp
M Source/WebCore/platform/graphics/FontCascade.cpp
M Source/WebCore/platform/graphics/FontCascade.h
M Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp
M Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h
M Source/WebCore/platform/graphics/displaylists/DisplayList.cpp
M Source/WebCore/platform/graphics/displaylists/DisplayList.h
M Source/WebCore/platform/graphics/displaylists/DisplayListDrawingContext.h
M Source/WebCore/platform/graphics/displaylists/DisplayListImageBuffer.h
R Source/WebCore/platform/graphics/displaylists/DisplayListItemBuffer.cpp
R Source/WebCore/platform/graphics/displaylists/DisplayListItemBuffer.h
R
Source/WebCore/platform/graphics/displaylists/DisplayListItemBufferIdentifier.h
R Source/WebCore/platform/graphics/displaylists/DisplayListItemType.cpp
R Source/WebCore/platform/graphics/displaylists/DisplayListItemType.h
M Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp
M Source/WebCore/platform/graphics/displaylists/DisplayListItems.h
R Source/WebCore/platform/graphics/displaylists/DisplayListIterator.cpp
R Source/WebCore/platform/graphics/displaylists/DisplayListIterator.h
M Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.cpp
M Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.h
M Source/WebCore/platform/graphics/displaylists/DisplayListReplayer.cpp
M Source/WebCore/platform/graphics/displaylists/DisplayListReplayer.h
R Source/WebCore/platform/graphics/displaylists/InMemoryDisplayList.cpp
R Source/WebCore/platform/graphics/displaylists/InMemoryDisplayList.h
M Source/WebCore/rendering/GlyphDisplayListCache.cpp
M Source/WebCore/rendering/GlyphDisplayListCache.h
M Source/WebKit/Scripts/webkit/messages.py
M Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp
M Tools/TestWebKitAPI/Tests/WebCore/DisplayListRecorderTests.cpp
M Tools/TestWebKitAPI/Tests/WebCore/DisplayListTests.cpp
M Tools/TestWebKitAPI/Tests/WebCore/cg/BifurcatedGraphicsContextTestsCG.cpp
M Tools/TestWebKitAPI/Tests/WebCore/cg/DisplayListTestsCG.cpp
Log Message:
-----------
Remove InMemoryDisplayList
https://bugs.webkit.org/show_bug.cgi?id=260213
rdar://113921399
Reviewed by Kimmo Kinnunen and Wenson Hsieh.
Make DisplayList hold a Vector of DisplayList items. There is no need for its
read and write clients anymore. They were used in the past to share the recorded
DisplayList items with GPU Process through a ring buffer. After introducing the
StreamConnection, using the DisplayList became limited to the TextPainter
recording.
Simplifying this code will allow replaying back a whole DisplayList in GPU
Process
all at once.
* Source/WebCore/Headers.cmake:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/html/HTMLCanvasElement.cpp:
* Source/WebCore/platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::displayListForTextRun const):
* Source/WebCore/platform/graphics/FontCascade.h:
(WebCore::FontCascade::displayListForTextRun):
* Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::recursiveCommitChanges):
(WebCore::GraphicsLayerCA::platformCALayerPaintContents):
* Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h:
* Source/WebCore/platform/graphics/displaylists/DisplayList.cpp:
(WebCore::DisplayList::DisplayList::append):
(WebCore::DisplayList::DisplayList::shrinkToFit):
(WebCore::DisplayList::DisplayList::clear):
(WebCore::DisplayList::DisplayList::isEmpty const):
(WebCore::DisplayList::DisplayList::cacheImageBuffer):
(WebCore::DisplayList::DisplayList::cacheNativeImage):
(WebCore::DisplayList::DisplayList::cacheFont):
(WebCore::DisplayList::DisplayList::cacheDecomposedGlyphs):
(WebCore::DisplayList::DisplayList::cacheGradient):
(WebCore::DisplayList::DisplayList::cacheFilter):
(WebCore::DisplayList::DisplayList::asText const):
(WebCore::DisplayList::DisplayList::dump const):
(WebCore::DisplayList::DisplayList::description const): Deleted.
(WebCore::DisplayList::DisplayList::DisplayList): Deleted.
(WebCore::DisplayList::m_items): Deleted.
(WebCore::DisplayList::DisplayList::operator=): Deleted.
(WebCore::DisplayList::DisplayList::shouldDumpForFlags): Deleted.
(WebCore::DisplayList::DisplayList::sizeInBytes const): Deleted.
(WebCore::DisplayList::DisplayList::itemBuffer): Deleted.
(WebCore::DisplayList::DisplayList::setItemBufferReadingClient): Deleted.
(WebCore::DisplayList::DisplayList::setItemBufferWritingClient): Deleted.
(WebCore::DisplayList::DisplayList::prepareToAppend): Deleted.
(WebCore::DisplayList::DisplayList::forEachItemBuffer const): Deleted.
(WebCore::DisplayList::DisplayList::begin const): Deleted.
(WebCore::DisplayList::DisplayList::end const): Deleted.
* Source/WebCore/platform/graphics/displaylists/DisplayList.h:
(WebCore::DisplayList::DisplayList::items const):
(WebCore::DisplayList::DisplayList::items):
(WebCore::DisplayList::DisplayList::itemBufferIfExists const): Deleted.
(WebCore::DisplayList::DisplayList::cacheImageBuffer): Deleted.
(WebCore::DisplayList::DisplayList::cacheNativeImage): Deleted.
(WebCore::DisplayList::DisplayList::cacheFont): Deleted.
(WebCore::DisplayList::DisplayList::cacheDecomposedGlyphs): Deleted.
(WebCore::DisplayList::DisplayList::cacheGradient): Deleted.
(WebCore::DisplayList::DisplayList::cacheFilter): Deleted.
(WebCore::DisplayList::DisplayList::append): Deleted.
* Source/WebCore/platform/graphics/displaylists/DisplayListDrawingContext.h:
(WebCore::DisplayList::DrawingContext::recorder):
(WebCore::DisplayList::DrawingContext::replayedDisplayList const):
(WebCore::DisplayList::DrawingContext::takeDisplayList): Deleted.
* Source/WebCore/platform/graphics/displaylists/DisplayListImageBuffer.h:
* Source/WebCore/platform/graphics/displaylists/DisplayListItemBuffer.cpp:
Removed.
* Source/WebCore/platform/graphics/displaylists/DisplayListItemBuffer.h:
Removed.
*
Source/WebCore/platform/graphics/displaylists/DisplayListItemBufferIdentifier.h:
Removed.
* Source/WebCore/platform/graphics/displaylists/DisplayListItemType.cpp:
Removed.
* Source/WebCore/platform/graphics/displaylists/DisplayListItemType.h: Removed.
* Source/WebCore/platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::Translate::dump const):
(WebCore::DisplayList::Rotate::dump const):
(WebCore::DisplayList::Scale::dump const):
(WebCore::DisplayList::SetCTM::dump const):
(WebCore::DisplayList::ConcatenateCTM::dump const):
(WebCore::DisplayList::SetInlineFillColor::dump const):
(WebCore::DisplayList::SetInlineStrokeColor::dump const):
(WebCore::DisplayList::SetStrokeThickness::dump const):
(WebCore::DisplayList::SetState::apply const):
(WebCore::DisplayList::SetState::dump const):
(WebCore::DisplayList::SetLineCap::dump const):
(WebCore::DisplayList::SetLineDash::dump const):
(WebCore::DisplayList::SetLineJoin::dump const):
(WebCore::DisplayList::SetMiterLimit::dump const):
(WebCore::DisplayList::Clip::dump const):
(WebCore::DisplayList::ClipRoundedRect::dump const):
(WebCore::DisplayList::ClipOut::dump const):
(WebCore::DisplayList::ClipOutRoundedRect::dump const):
(WebCore::DisplayList::ClipToImageBuffer::dump const):
(WebCore::DisplayList::ClipOutToPath::dump const):
(WebCore::DisplayList::ClipPath::dump const):
(WebCore::DisplayList::DrawFilteredImageBuffer::apply const):
(WebCore::DisplayList::DrawFilteredImageBuffer::dump const):
(WebCore::DisplayList::DrawGlyphs::dump const):
(WebCore::DisplayList::DrawDecomposedGlyphs::dump const):
(WebCore::DisplayList::DrawImageBuffer::dump const):
(WebCore::DisplayList::DrawNativeImage::dump const):
(WebCore::DisplayList::DrawSystemImage::dump const):
(WebCore::DisplayList::DrawPattern::dump const):
(WebCore::DisplayList::DrawRect::dump const):
(WebCore::DisplayList::DrawLine::dump const):
(WebCore::DisplayList::DrawLinesForText::dump const):
(WebCore::DisplayList::DrawDotsForDocumentMarker::apply const):
(WebCore::DisplayList::DrawDotsForDocumentMarker::dump const):
(WebCore::DisplayList::DrawEllipse::apply const):
(WebCore::DisplayList::DrawEllipse::dump const):
(WebCore::DisplayList::DrawPath::apply const):
(WebCore::DisplayList::DrawPath::dump const):
(WebCore::DisplayList::DrawFocusRingPath::apply const):
(WebCore::DisplayList::DrawFocusRingPath::dump const):
(WebCore::DisplayList::DrawFocusRingRects::apply const):
(WebCore::DisplayList::DrawFocusRingRects::dump const):
(WebCore::DisplayList::FillRect::apply const):
(WebCore::DisplayList::FillRect::dump const):
(WebCore::DisplayList::FillRectWithColor::apply const):
(WebCore::DisplayList::FillRectWithColor::dump const):
(WebCore::DisplayList::FillRectWithGradient::FillRectWithGradient):
(WebCore::DisplayList::FillRectWithGradient::apply const):
(WebCore::DisplayList::FillRectWithGradient::dump const):
(WebCore::DisplayList::FillCompositedRect::apply const):
(WebCore::DisplayList::FillCompositedRect::dump const):
(WebCore::DisplayList::FillRoundedRect::apply const):
(WebCore::DisplayList::FillRoundedRect::dump const):
(WebCore::DisplayList::FillRectWithRoundedHole::apply const):
(WebCore::DisplayList::FillRectWithRoundedHole::dump const):
(WebCore::DisplayList::FillLine::apply const):
(WebCore::DisplayList::FillLine::dump const):
(WebCore::DisplayList::FillArc::apply const):
(WebCore::DisplayList::FillArc::dump const):
(WebCore::DisplayList::FillQuadCurve::apply const):
(WebCore::DisplayList::FillQuadCurve::dump const):
(WebCore::DisplayList::FillBezierCurve::apply const):
(WebCore::DisplayList::FillBezierCurve::dump const):
(WebCore::DisplayList::FillPathSegment::apply const):
(WebCore::DisplayList::FillPathSegment::dump const):
(WebCore::DisplayList::FillPath::apply const):
(WebCore::DisplayList::FillPath::dump const):
(WebCore::DisplayList::FillEllipse::apply const):
(WebCore::DisplayList::FillEllipse::dump const):
(WebCore::DisplayList::PaintFrameForMedia::PaintFrameForMedia):
(WebCore::DisplayList::PaintFrameForMedia::apply const):
(WebCore::DisplayList::PaintFrameForMedia::dump const):
(WebCore::DisplayList::StrokeRect::apply const):
(WebCore::DisplayList::StrokeRect::dump const):
(WebCore::DisplayList::StrokePath::apply const):
(WebCore::DisplayList::StrokePath::dump const):
(WebCore::DisplayList::StrokePathSegment::apply const):
(WebCore::DisplayList::StrokePathSegment::dump const):
(WebCore::DisplayList::StrokeEllipse::apply const):
(WebCore::DisplayList::StrokeEllipse::dump const):
(WebCore::DisplayList::StrokeLine::apply const):
(WebCore::DisplayList::StrokeLine::dump const):
(WebCore::DisplayList::StrokeArc::apply const):
(WebCore::DisplayList::StrokeArc::dump const):
(WebCore::DisplayList::StrokeQuadCurve::apply const):
(WebCore::DisplayList::StrokeQuadCurve::dump const):
(WebCore::DisplayList::StrokeBezierCurve::apply const):
(WebCore::DisplayList::StrokeBezierCurve::dump const):
(WebCore::DisplayList::ClearRect::apply const):
(WebCore::DisplayList::ClearRect::dump const):
(WebCore::DisplayList::DrawControlPart::DrawControlPart):
(WebCore::DisplayList::DrawControlPart::apply const):
(WebCore::DisplayList::DrawControlPart::dump const):
(WebCore::DisplayList::BeginTransparencyLayer::apply const):
(WebCore::DisplayList::BeginTransparencyLayer::dump const):
(WebCore::DisplayList::EndTransparencyLayer::apply const):
(WebCore::DisplayList::ApplyStrokePattern::apply const):
(WebCore::DisplayList::ApplyFillPattern::apply const):
(WebCore::DisplayList::ApplyDeviceScaleFactor::apply const):
(WebCore::DisplayList::ApplyDeviceScaleFactor::dump const):
(WebCore::DisplayList::shouldDumpDisplayListItem):
(WebCore::DisplayList::dumpDisplayListItem):
(WebCore::DisplayList::SetState::apply): Deleted.
(WebCore::DisplayList::DrawControlPart::apply): Deleted.
(WebCore::DisplayList::operator<<): Deleted.
(WebCore::DisplayList::dumpItem): Deleted.
(WebCore::DisplayList::dumpItemHandle): Deleted.
* Source/WebCore/platform/graphics/displaylists/DisplayListItems.h:
(WebCore::DisplayList::Save::dump const):
(WebCore::DisplayList::Restore::dump const):
(WebCore::DisplayList::ClearShadow::dump const):
(WebCore::DisplayList::ResetClip::dump const):
(WebCore::DisplayList::EndTransparencyLayer::dump const):
(WebCore::DisplayList::ApplyStrokePattern::dump const):
(WebCore::DisplayList::ApplyFillPattern::dump const):
(WebCore::DisplayList::isValid):
(WebCore::DisplayList::operator<<):
* Source/WebCore/platform/graphics/displaylists/DisplayListIterator.cpp:
Removed.
* Source/WebCore/platform/graphics/displaylists/DisplayListIterator.h: Removed.
* Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.cpp:
(WebCore::DisplayList::RecorderImpl::recordSave):
(WebCore::DisplayList::RecorderImpl::recordRestore):
(WebCore::DisplayList::RecorderImpl::recordTranslate):
(WebCore::DisplayList::RecorderImpl::recordRotate):
(WebCore::DisplayList::RecorderImpl::recordScale):
(WebCore::DisplayList::RecorderImpl::recordSetCTM):
(WebCore::DisplayList::RecorderImpl::recordConcatenateCTM):
(WebCore::DisplayList::RecorderImpl::recordSetInlineFillColor):
(WebCore::DisplayList::RecorderImpl::recordSetInlineStrokeColor):
(WebCore::DisplayList::RecorderImpl::recordSetStrokeThickness):
(WebCore::DisplayList::RecorderImpl::recordSetState):
(WebCore::DisplayList::RecorderImpl::recordSetLineCap):
(WebCore::DisplayList::RecorderImpl::recordSetLineDash):
(WebCore::DisplayList::RecorderImpl::recordSetLineJoin):
(WebCore::DisplayList::RecorderImpl::recordSetMiterLimit):
(WebCore::DisplayList::RecorderImpl::recordClearShadow):
(WebCore::DisplayList::RecorderImpl::recordResetClip):
(WebCore::DisplayList::RecorderImpl::recordClip):
(WebCore::DisplayList::RecorderImpl::recordClipRoundedRect):
(WebCore::DisplayList::RecorderImpl::recordClipOut):
(WebCore::DisplayList::RecorderImpl::recordClipOutRoundedRect):
(WebCore::DisplayList::RecorderImpl::recordClipToImageBuffer):
(WebCore::DisplayList::RecorderImpl::recordClipOutToPath):
(WebCore::DisplayList::RecorderImpl::recordClipPath):
(WebCore::DisplayList::RecorderImpl::recordDrawFilteredImageBuffer):
(WebCore::DisplayList::RecorderImpl::recordDrawGlyphs):
(WebCore::DisplayList::RecorderImpl::recordDrawDecomposedGlyphs):
(WebCore::DisplayList::RecorderImpl::recordDrawImageBuffer):
(WebCore::DisplayList::RecorderImpl::recordDrawNativeImage):
(WebCore::DisplayList::RecorderImpl::recordDrawSystemImage):
(WebCore::DisplayList::RecorderImpl::recordDrawPattern):
(WebCore::DisplayList::RecorderImpl::recordBeginTransparencyLayer):
(WebCore::DisplayList::RecorderImpl::recordEndTransparencyLayer):
(WebCore::DisplayList::RecorderImpl::recordDrawRect):
(WebCore::DisplayList::RecorderImpl::recordDrawLine):
(WebCore::DisplayList::RecorderImpl::recordDrawLinesForText):
(WebCore::DisplayList::RecorderImpl::recordDrawDotsForDocumentMarker):
(WebCore::DisplayList::RecorderImpl::recordDrawEllipse):
(WebCore::DisplayList::RecorderImpl::recordDrawPath):
(WebCore::DisplayList::RecorderImpl::recordDrawFocusRingPath):
(WebCore::DisplayList::RecorderImpl::recordDrawFocusRingRects):
(WebCore::DisplayList::RecorderImpl::recordFillRect):
(WebCore::DisplayList::RecorderImpl::recordFillRectWithColor):
(WebCore::DisplayList::RecorderImpl::recordFillRectWithGradient):
(WebCore::DisplayList::RecorderImpl::recordFillCompositedRect):
(WebCore::DisplayList::RecorderImpl::recordFillRoundedRect):
(WebCore::DisplayList::RecorderImpl::recordFillRectWithRoundedHole):
(WebCore::DisplayList::RecorderImpl::recordFillLine):
(WebCore::DisplayList::RecorderImpl::recordFillArc):
(WebCore::DisplayList::RecorderImpl::recordFillQuadCurve):
(WebCore::DisplayList::RecorderImpl::recordFillBezierCurve):
(WebCore::DisplayList::RecorderImpl::recordFillPathSegment):
(WebCore::DisplayList::RecorderImpl::recordFillPath):
(WebCore::DisplayList::RecorderImpl::recordFillEllipse):
(WebCore::DisplayList::RecorderImpl::recordPaintFrameForMedia):
(WebCore::DisplayList::RecorderImpl::recordStrokeRect):
(WebCore::DisplayList::RecorderImpl::recordStrokeLine):
(WebCore::DisplayList::RecorderImpl::recordStrokeLineWithColorAndThickness):
(WebCore::DisplayList::RecorderImpl::recordStrokeArc):
(WebCore::DisplayList::RecorderImpl::recordStrokeQuadCurve):
(WebCore::DisplayList::RecorderImpl::recordStrokeBezierCurve):
(WebCore::DisplayList::RecorderImpl::recordStrokePathSegment):
(WebCore::DisplayList::RecorderImpl::recordStrokePath):
(WebCore::DisplayList::RecorderImpl::recordStrokeEllipse):
(WebCore::DisplayList::RecorderImpl::recordClearRect):
(WebCore::DisplayList::RecorderImpl::recordDrawControlPart):
(WebCore::DisplayList::RecorderImpl::recordApplyStrokePattern):
(WebCore::DisplayList::RecorderImpl::recordApplyFillPattern):
(WebCore::DisplayList::RecorderImpl::recordApplyDeviceScaleFactor):
* Source/WebCore/platform/graphics/displaylists/DisplayListRecorderImpl.h:
(WebCore::DisplayList::RecorderImpl::append):
* Source/WebCore/platform/graphics/displaylists/DisplayListReplayer.cpp:
(WebCore::DisplayList::applyImageBufferItem):
(WebCore::DisplayList::applyNativeImageItem):
(WebCore::DisplayList::applySourceImageItem):
(WebCore::DisplayList::applySetStateItem):
(WebCore::DisplayList::applyDrawGlyphs):
(WebCore::DisplayList::applyDrawDecomposedGlyphs):
(WebCore::DisplayList::Replayer::applyItem):
(WebCore::DisplayList::Replayer::replay):
* Source/WebCore/platform/graphics/displaylists/DisplayListReplayer.h:
* Source/WebCore/platform/graphics/displaylists/InMemoryDisplayList.cpp:
Removed.
* Source/WebCore/platform/graphics/displaylists/InMemoryDisplayList.h: Removed.
* Source/WebCore/rendering/GlyphDisplayListCache.cpp:
(WebCore::GlyphDisplayListCache::get):
(WebCore::GlyphDisplayListCache::canShareDisplayList):
(WebCore::canShareDisplayListWithItem): Deleted.
(WebCore::GlyphDisplayListCache::sizeInBytes const): Deleted.
* Source/WebCore/rendering/GlyphDisplayListCache.h:
(WebCore::GlyphDisplayListCacheEntry::create):
(WebCore::GlyphDisplayListCacheEntry::displayList):
(WebCore::GlyphDisplayListCacheEntry::GlyphDisplayListCacheEntry):
* Source/WebKit/Scripts/webkit/messages.py:
(serialized_identifiers):
(headers_for_type):
* Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp:
(IPC::serializedIdentifiers):
* Tools/TestWebKitAPI/Tests/WebCore/DisplayListRecorderTests.cpp:
* Tools/TestWebKitAPI/Tests/WebCore/DisplayListTests.cpp:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WebCore/cg/BifurcatedGraphicsContextTestsCG.cpp:
(TestWebKitAPI::TEST):
* Tools/TestWebKitAPI/Tests/WebCore/cg/DisplayListTestsCG.cpp:
(TestWebKitAPI::TEST):
(): Deleted.
Canonical link: https://commits.webkit.org/267213@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes