[webkit-changes] [WebKit/WebKit] a04bd3: REGRESSION(2.45.1/2.45.2): [GTK] UI process crash ...
Carlos Garcia Campos
noreply at github.com
Thu May 30 03:23:20 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: a04bd30787a23ce52d90bba8c0acb4f4cd5ab5d5
https://github.com/WebKit/WebKit/commit/a04bd30787a23ce52d90bba8c0acb4f4cd5ab5d5
Author: Carlos Garcia Campos <cgarcia at 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
More information about the webkit-changes
mailing list