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

Reply via email to