Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 802d54adc70e232328c849657cf52bd18d5fcead
https://github.com/WebKit/WebKit/commit/802d54adc70e232328c849657cf52bd18d5fcead
Author: Carlos Garcia Campos <[email protected]>
Date: 2024-08-21 (Wed, 21 Aug 2024)
Changed paths:
M Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp
M Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h
Log Message:
-----------
[GTK] Crash in FenceMonitor::addFileDescriptor when using Google Maps
https://bugs.webkit.org/show_bug.cgi?id=278402
Reviewed by Miguel Gomez.
The problem is actually earlier, frame is called when we already have a
pending buffer, which is not expected to happen, but in this case it's
protected by a debug assert, so release builds don't catch it.
This can happen now with the explicit sync when GTK itself schedules a
draw when we have a pending buffer, but we are still waiting on the
fence. In that ase we don't swap the buffers, but still send the
FrameDone message to the web process that can start rendering a new one
and send the Frame message while we are still processing the previous
one. This patch renames prepareForRendering() as swapBuffersIfNeeded()
that returns true only when buffers were swapped, so that we use that to
decide whether to send the FrameDone message or not.
* Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp:
(WebKit::AcceleratedBackingStoreDMABuf::swapBuffersIfNeeded):
(WebKit::AcceleratedBackingStoreDMABuf::snapshot):
(WebKit::AcceleratedBackingStoreDMABuf::paint):
(WebKit::AcceleratedBackingStoreDMABuf::prepareForRendering): Deleted.
* Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h:
Canonical link: https://commits.webkit.org/282608@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