Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 14f3f90b25369f7cb674514274346ff440a20865
https://github.com/WebKit/WebKit/commit/14f3f90b25369f7cb674514274346ff440a20865
Author: Carlos Garcia Campos <[email protected]>
Date: 2026-06-05 (Fri, 05 Jun 2026)
Changed paths:
M Source/WebCore/platform/Skia.cmake
M Source/WebCore/platform/SourcesSkia.txt
M Source/WebCore/platform/graphics/skia/SkiaBackingStore.cpp
M Source/WebCore/platform/graphics/skia/SkiaBackingStore.h
M Source/WebCore/platform/graphics/skia/SkiaCompositingLayer.cpp
M Source/WebCore/platform/graphics/skia/SkiaCompositingLayer.h
A
Source/WebCore/platform/graphics/skia/SkiaCompositingLayerImageSetBatch.cpp
A Source/WebCore/platform/graphics/skia/SkiaCompositingLayerImageSetBatch.h
Log Message:
-----------
[GTK][WPE] Skia Compositor: implement batched painting
https://bugs.webkit.org/show_bug.cgi?id=316294
Reviewed by Nikolas Zimmermann.
Using the experimental SkCanvas API to draw a set of images with a
single call, we can group draw operations in batches before passing them
to skia. This is more efficient when we have many layers painting
content that can be merged.
* Source/WebCore/platform/Skia.cmake:
* Source/WebCore/platform/SourcesSkia.txt:
* Source/WebCore/platform/graphics/skia/SkiaBackingStore.cpp:
(WebCore::SkiaBackingStore::buildImageSet const):
(WebCore::SkiaBackingStore::Tile::image const):
(WebCore::SkiaBackingStore::Tile::image): Deleted.
* Source/WebCore/platform/graphics/skia/SkiaBackingStore.h:
* Source/WebCore/platform/graphics/skia/SkiaCompositingLayer.cpp:
(WebCore::SkiaCompositingLayer::paint):
(WebCore::SkiaCompositingLayer::paintSelf):
(WebCore::SkiaCompositingLayer::paintContents):
(WebCore::SkiaCompositingLayer::collectFrameDamage):
(WebCore::SkiaCompositingLayer::paintDebugIndicators):
(WebCore::SkiaCompositingLayer::paintSelfAndChildren):
(WebCore::SkiaCompositingLayer::paintWithIntermediateSurface):
(WebCore::SkiaCompositingLayer::paintBackdrop):
(WebCore::SkiaCompositingLayer::paintWithMaskAndBackdrop):
(WebCore::SkiaCompositingLayer::paintWithOpacity):
(WebCore::SkiaCompositingLayer::paintWithBlendMode):
(WebCore::SkiaCompositingLayer::paintWith3DRenderingContext):
* Source/WebCore/platform/graphics/skia/SkiaCompositingLayer.h:
* Source/WebCore/platform/graphics/skia/SkiaCompositingLayerImageSetBatch.cpp:
Added.
(WebCore::SkiaCompositingLayerImageSetBatch::updatePaintProperties):
(WebCore::SkiaCompositingLayerImageSetBatch::updateSamplingOptions):
(WebCore::SkiaCompositingLayerImageSetBatch::addImageSet):
(WebCore::SkiaCompositingLayerImageSetBatch::addImage):
(WebCore::SkiaCompositingLayerImageSetBatch::flushIfNeeded):
(WebCore::SkiaCompositingLayerImageSetBatch::ScopedFlush::ScopedFlush):
(WebCore::SkiaCompositingLayerImageSetBatch::ScopedFlush::~ScopedFlush):
* Source/WebCore/platform/graphics/skia/SkiaCompositingLayerImageSetBatch.h:
Added.
Canonical link: https://commits.webkit.org/314626@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications