Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: e46ab4de36b4118d8bf1b672cc1b56cc1cf02681
https://github.com/WebKit/WebKit/commit/e46ab4de36b4118d8bf1b672cc1b56cc1cf02681
Author: Nikolas Zimmermann <[email protected]>
Date: 2024-08-30 (Fri, 30 Aug 2024)
Changed paths:
M
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayerSkia.cpp
Log Message:
-----------
REGRESSION(282012@main): [GTK][WPE][Skia] Crash using threaded rendering
https://bugs.webkit.org/show_bug.cgi?id=278452
Reviewed by Carlos Garcia Campos.
Both GTK/WPE use multi-threaded rendering when using the Skia/CPU
backend. In that mode a DisplayList is recorded on the main thread,
containing the commands required to render each of the GraphicLayer
tiles. Those DisplayLists are asynchronously replayed in worker
threads. Since 282012@main, we're getting a random crash during the
replay stage of the rendering.
There are calls to ControlFactory::shared() happening from within the
worker threads -- however ControlFactory is intended to be used from the
main thread only. The proper fix is to construct a ControlFactory per
worker thread, and store it locally in each threads, and use the threads
ControlFactory when replaying the DisplayList, instead of using the
shared one -- the same approach is taken by RemoteDisplayListRecorder in
Apple ports.
Covered by existing tests.
*
Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayerSkia.cpp:
(WebCore::CoordinatedGraphicsLayer::paintTile):
Canonical link: https://commits.webkit.org/282951@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes