Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: e46ab4de36b4118d8bf1b672cc1b56cc1cf02681 https://github.com/WebKit/WebKit/commit/e46ab4de36b4118d8bf1b672cc1b56cc1cf02681 Author: Nikolas Zimmermann <nzimmerm...@igalia.com> 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 webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes