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

Reply via email to