[webkit-changes] [WebKit/WebKit] 2f7775: Remove InMemoryDisplayList
Said Abou-Hallawa
noreply at github.com
Wed Aug 23 18:08:43 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 2f7775558dc854a5ccbf94798d75f1ace93dbccd
https://github.com/WebKit/WebKit/commit/2f7775558dc854a5ccbf94798d75f1ace93dbccd
Author: Said Abou-Hallawa <said at apple.com>
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
More information about the webkit-changes
mailing list