Branch: refs/heads/webkitglib/2.54
Home: https://github.com/WebKit/WebKit
Commit: 6b7bdba8dcad4a433821c72854115293640ef833
https://github.com/WebKit/WebKit/commit/6b7bdba8dcad4a433821c72854115293640ef833
Author: Carlos Garcia Campos <[email protected]>
Date: 2026-08-06 (Thu, 06 Aug 2026)
Changed paths:
M
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.cpp
M
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.h
M
Source/WebCore/platform/graphics/texmap/coordinated/GraphicsLayerCoordinated.cpp
M
Source/WebCore/platform/graphics/texmap/coordinated/GraphicsLayerCoordinated.h
Log Message:
-----------
Cherry-pick 318313@main (715e92812255).
https://bugs.webkit.org/show_bug.cgi?id=320738
[CoordinatedGraphics] Remove unused m_transformedVisibleRect from
CoordinatedPlatformLayer
https://bugs.webkit.org/show_bug.cgi?id=320738
Reviewed by Fujii Hironori.
Only the one including future is used, so we can keep that one as just
m_transformedVisibleRect. We can also simplify GraphicsLayerCoordinated,
m_layerTransform.cachedCombined is only used inside
computeLayerTransformIfNeeded()
so it can be a local variable.
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.cpp:
(WebCore::CoordinatedPlatformLayer::setTransformedVisibleRect):
(WebCore::CoordinatedPlatformLayer::updateBackingStore):
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.h:
*
Source/WebCore/platform/graphics/texmap/coordinated/GraphicsLayerCoordinated.cpp:
(WebCore::GraphicsLayerCoordinated::computeLayerTransformIfNeeded):
(WebCore::GraphicsLayerCoordinated::updateVisibleRect):
*
Source/WebCore/platform/graphics/texmap/coordinated/GraphicsLayerCoordinated.h:
Canonical link: https://commits.webkit.org/318313@main
Canonical link: https://commits.webkit.org/317695.56@webkitglib/2.54
Commit: 19d7d8d68f6896e449ccba943a58045d89a061bb
https://github.com/WebKit/WebKit/commit/19d7d8d68f6896e449ccba943a58045d89a061bb
Author: Carlos Garcia Campos <[email protected]>
Date: 2026-08-06 (Thu, 06 Aug 2026)
Changed paths:
M
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.cpp
M
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.h
Log Message:
-----------
Cherry-pick 318445@main (68b163ff10b4).
https://bugs.webkit.org/show_bug.cgi?id=320890
[GTK][WPE] Skia compositor:
CoordinatedPlatformLayer::hasCommittedContentsBuffer() uses m_skiaTarget and
can be called from different threads
https://bugs.webkit.org/show_bug.cgi?id=320890
Reviewed by Nikolas Zimmermann.
In CoordinatedPlatformLayer m_skiaTarget is not pretected by any lock
because it's only expected to be used from the compositing thread, but
it's used from hasCommittedContentsBuffer() that can be called from gst
threads. Add a bool flag protected by m_lock to note when the layer has
a committed contents buffer and use it instead of
hasCommittedContentsBuffer().
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.cpp:
(WebCore::CoordinatedPlatformLayer::invalidateTarget):
(WebCore::CoordinatedPlatformLayer::setContentsBuffer):
(WebCore::CoordinatedPlatformLayer::replaceCurrentContentsBufferWithCopy):
(WebCore::CoordinatedPlatformLayer::flushCompositingStateOnTarget):
(WebCore::CoordinatedPlatformLayer::flushCompositingStateOnSkiaTarget):
(WebCore::CoordinatedPlatformLayer::hasCommittedContentsBuffer const):
Deleted.
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.h:
Canonical link: https://commits.webkit.org/318445@main
Canonical link: https://commits.webkit.org/317695.57@webkitglib/2.54
Commit: 2be3288c8fb977ce910a6ebfd0d00e1afe34679f
https://github.com/WebKit/WebKit/commit/2be3288c8fb977ce910a6ebfd0d00e1afe34679f
Author: Carlos Garcia Campos <[email protected]>
Date: 2026-08-06 (Thu, 06 Aug 2026)
Changed paths:
M Source/WebCore/platform/graphics/skia/SkiaCompositingLayer.cpp
M Source/WebCore/platform/graphics/skia/SkiaCompositingLayer.h
M
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.cpp
Log Message:
-----------
Cherry-pick 318449@main (fbc68d0f05e7).
https://bugs.webkit.org/show_bug.cgi?id=320888
[GTK][WPE] Skia compositor: do not early release hole punch buffers on
layer invalidation
https://bugs.webkit.org/show_bug.cgi?id=320888
Reviewed by Nikolas Zimmermann.
We only do it for texture mapper. With skia compositor the committed
buffer is owned by SkiaCompositingLayer that is also going to be
destroyed on invalidate, so we need to transfer the ownership of the
hole punch buffer to CoordinatedPlatformLayer.
* Source/WebCore/platform/graphics/skia/SkiaCompositingLayer.h:
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.cpp:
(WebCore::CoordinatedPlatformLayer::invalidateTarget):
(WebCore::shouldReleaseBuffer):
* Source/WebCore/platform/graphics/skia/SkiaCompositingLayer.cpp:
(WebCore::SkiaCompositingLayer::takeContentsBuffer):
Canonical link: https://commits.webkit.org/318449@main
Canonical link: https://commits.webkit.org/317695.58@webkitglib/2.54
Commit: 21049455a19f1434599996a30c37e528eb4d1f73
https://github.com/WebKit/WebKit/commit/21049455a19f1434599996a30c37e528eb4d1f73
Author: Carlos Garcia Campos <[email protected]>
Date: 2026-08-06 (Thu, 06 Aug 2026)
Changed paths:
M
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreProxy.cpp
M
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreProxy.h
M
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.cpp
M
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.h
Log Message:
-----------
Cherry-pick 318455@main (4b1174b93a43).
https://bugs.webkit.org/show_bug.cgi?id=320902
[CoordinatedGraphics] Remove the lock requirement for
CoordinatedPlatformLayer members that are only accessed from the main thread
https://bugs.webkit.org/show_bug.cgi?id=320902
Reviewed by Nikolas Zimmermann.
Replace the lock requirement by main thread requirement. Also remove the
visibleRect() getter, since it's only ued by
CoordinatedBackingStoreProxy::updateIfNeeded()
and we can just pass the unscaled viewport size instead.
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreProxy.cpp:
(WebCore::CoordinatedBackingStoreProxy::updateIfNeeded):
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreProxy.h:
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.cpp:
(WebCore::CoordinatedPlatformLayer::setOwner):
(WebCore::CoordinatedPlatformLayer::owner const):
(WebCore::CoordinatedPlatformLayer::didUpdateLayerTransform):
(WebCore::CoordinatedPlatformLayer::setVisibleRect):
(WebCore::CoordinatedPlatformLayer::setTransformedVisibleRect):
(WebCore::CoordinatedPlatformLayer::setContentsScale):
(WebCore::CoordinatedPlatformLayer::setDirtyRegion):
(WebCore::CoordinatedPlatformLayer::setShowRepaintCounter):
(WebCore::CoordinatedPlatformLayer::updateBackingStore):
(WebCore::CoordinatedPlatformLayer::updateContents):
(WebCore::CoordinatedPlatformLayer::paint):
(WebCore::CoordinatedPlatformLayer::record):
(WebCore::CoordinatedPlatformLayer::replay):
(WebCore::CoordinatedPlatformLayer::visibleRect const): Deleted.
(WebCore::CoordinatedPlatformLayer::setDrawsContent):
(WebCore::CoordinatedPlatformLayer::needsBackingStore const):
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.h:
(WebCore::CoordinatedPlatformLayer::WTF_GUARDED_BY_CAPABILITY):
(WebCore::CoordinatedPlatformLayer::hasPendingTilesCreation const):
Canonical link: https://commits.webkit.org/318455@main
Canonical link: https://commits.webkit.org/317695.59@webkitglib/2.54
Commit: bd4f9a352ba2bfcf7a9d399e00304ff549199710
https://github.com/WebKit/WebKit/commit/bd4f9a352ba2bfcf7a9d399e00304ff549199710
Author: Carlos Garcia Campos <[email protected]>
Date: 2026-08-06 (Thu, 06 Aug 2026)
Changed paths:
M
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedAnimatedBackingStoreClient.cpp
M
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedAnimatedBackingStoreClient.h
M
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreProxy.cpp
M
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreProxy.h
M
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.cpp
M
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.h
Log Message:
-----------
Cherry-pick 318535@main (0f25453ee003).
https://bugs.webkit.org/show_bug.cgi?id=320970
[CoordinatedGraphics] Move CoordinatedAnimatedBackingStoreClient ownership
to CoordinatedBackingStoreProxy
https://bugs.webkit.org/show_bug.cgi?id=320970
Reviewed by Nikolas Zimmermann.
A CoordinatedAnimatedBackingStoreClient can only exist when the layer
has a CoordinatedBackingStoreProxy, and the client is updated with the
cover rect computed by CoordinatedBackingStoreProxy so it's simpler to
make CoordinatedBackingStoreProxy own the
CoordinatedAnimatedBackingStoreClient.
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedAnimatedBackingStoreClient.cpp:
(WebCore::CoordinatedAnimatedBackingStoreClient::create):
(WebCore::CoordinatedAnimatedBackingStoreClient::update):
(WebCore::CoordinatedAnimatedBackingStoreClient::CoordinatedAnimatedBackingStoreClient):
Deleted.
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedAnimatedBackingStoreClient.h:
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreProxy.cpp:
(WebCore::CoordinatedBackingStoreProxy::~CoordinatedBackingStoreProxy):
(WebCore::CoordinatedBackingStoreProxy::invalidate):
(WebCore::CoordinatedBackingStoreProxy::setAffectedByTransformAnimation):
(WebCore::CoordinatedBackingStoreProxy::updateIfNeeded):
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreProxy.h:
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.cpp:
(WebCore::CoordinatedPlatformLayer::updateBackingStore):
(WebCore::CoordinatedPlatformLayer::updateContents):
(WebCore::CoordinatedPlatformLayer::purgeBackingStores):
(WebCore::CoordinatedPlatformLayer::flushCompositingStateOnTarget):
(WebCore::CoordinatedPlatformLayer::flushCompositingStateOnSkiaTarget):
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.h:
Canonical link: https://commits.webkit.org/318535@main
Canonical link: https://commits.webkit.org/317695.60@webkitglib/2.54
Commit: 5bb8bea61297a3f8863989b5305584a991e023a9
https://github.com/WebKit/WebKit/commit/5bb8bea61297a3f8863989b5305584a991e023a9
Author: Carlos Garcia Campos <[email protected]>
Date: 2026-08-06 (Thu, 06 Aug 2026)
Changed paths:
M
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreProxy.cpp
M
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreProxy.h
M
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.cpp
M
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.h
Log Message:
-----------
Cherry-pick 318554@main (0fd8ffebbc04).
https://bugs.webkit.org/show_bug.cgi?id=320978
[CoordinatedGraphics] Release the CoordinatedPlatformLayer lock while
recording and replaying tiles
https://bugs.webkit.org/show_bug.cgi?id=320978
Reviewed by Nikolas Zimmermann.
Recording can take a while, if the scrolling thread needs to access the
layer while being recorded it has to wait for something that doesn't
change the layer state. We can copy the values we need to pass to
CoordinatedBackingStoreProxy::updateIfNeeded() and release the log
before calling it. This patch also moves the painting code back to
CoordinatedBackingStoreProxy since nowadays the implementation of record
and replay is just a single line on code and we avoid passing values
from layer to proxy and then back from proxy to layer.
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreProxy.cpp:
(WebCore::CoordinatedBackingStoreProxy::updateIfNeeded):
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedBackingStoreProxy.h:
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.cpp:
(WebCore::CoordinatedPlatformLayer::updateBackingStore):
(WebCore::CoordinatedPlatformLayer::threadSafeGrContext const):
(WebCore::CoordinatedPlatformLayer::paint): Deleted.
(WebCore::CoordinatedPlatformLayer::record): Deleted.
(WebCore::CoordinatedPlatformLayer::replay): Deleted.
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedPlatformLayer.h:
Canonical link: https://commits.webkit.org/318554@main
Canonical link: https://commits.webkit.org/317695.61@webkitglib/2.54
Commit: 580595538d7f06a8c2a189d82bfb59f9c6ad374d
https://github.com/WebKit/WebKit/commit/580595538d7f06a8c2a189d82bfb59f9c6ad374d
Author: Carlos Garcia Campos <[email protected]>
Date: 2026-08-06 (Thu, 06 Aug 2026)
Changed paths:
M
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedAnimatedBackingStoreClient.cpp
M
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedAnimatedBackingStoreClient.h
Log Message:
-----------
Cherry-pick 318589@main (f959dc4080ec).
https://bugs.webkit.org/show_bug.cgi?id=320990
Unreviewed cherry-pick.
[CoordinatedGraphics] CoordinatedAnimatedBackingStoreClient is not thread
safe
https://bugs.webkit.org/show_bug.cgi?id=320990
Reviewed by Nikolas Zimmermann.
Its members are written from the main thread in update() and read from
the compositing thread in requestBackingStoreUpdateIfNeeded() without
locking.
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedAnimatedBackingStoreClient.cpp:
(WebCore::CoordinatedAnimatedBackingStoreClient::invalidate):
(WebCore::CoordinatedAnimatedBackingStoreClient::update):
(WebCore::CoordinatedAnimatedBackingStoreClient::requestBackingStoreUpdateIfNeeded
const):
(WebCore::CoordinatedAnimatedBackingStoreClient::requestBackingStoreUpdateIfNeeded):
Deleted.
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedAnimatedBackingStoreClient.h:
Canonical link: https://commits.webkit.org/318589@main
Canonical link: https://commits.webkit.org/317695.62@webkitglib/2.54
Compare: https://github.com/WebKit/WebKit/compare/e7212d862f08...580595538d7f
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications