Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: a04bd30787a23ce52d90bba8c0acb4f4cd5ab5d5
https://github.com/WebKit/WebKit/commit/a04bd30787a23ce52d90bba8c0acb4f4cd5ab5d5
Author: Carlos Garcia Campos <[email protected]>
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
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes