Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: a04bd30787a23ce52d90bba8c0acb4f4cd5ab5d5 https://github.com/WebKit/WebKit/commit/a04bd30787a23ce52d90bba8c0acb4f4cd5ab5d5 Author: Carlos Garcia Campos <cgar...@igalia.com> Date: 2024-05-30 (Thu, 30 May 2024)
Changed paths: M Source/WebCore/platform/graphics/nicosia/NicosiaBuffer.cpp M Source/WebCore/platform/graphics/skia/SkiaAcceleratedBufferPool.cpp Log Message: ----------- REGRESSION(2.45.1/2.45.2): [GTK] UI process crash in Nicosia::AcceleratedBuffer::~AcceleratedBuffer: Couldn't find current GLX or EGL context https://bugs.webkit.org/show_bug.cgi?id=274389 Reviewed by Miguel Gomez. The problem is that the scrolling thread is invalidated when the page is destroyed after the SkiaAcceleratedBufferPool is destroyed. So, the CompositeLayers of the scroling tree nodes can have a reference of a Nicosia::AcceleratedBuffer that is destroyed in the async scrolling thread with no current GL context. In SkiaAcceleratedBufferPool we make sure to make the skia GL context current before destroying the buffers, but buffers are only destroyed there if it's the last reference. We should make sure that Nicosia::AcceleratedBuffer GL recources are freed in the main thread with the skia GL context current on destruction. * Source/WebCore/platform/graphics/nicosia/NicosiaBuffer.cpp: (Nicosia::AcceleratedBuffer::~AcceleratedBuffer): * Source/WebCore/platform/graphics/skia/SkiaAcceleratedBufferPool.cpp: (WebCore::SkiaAcceleratedBufferPool::releaseUnusedBuffersTimerFired): (WebCore::SkiaAcceleratedBufferPool::~SkiaAcceleratedBufferPool): Deleted. Canonical link: https://commits.webkit.org/279507@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