[webkit-changes] [WebKit/WebKit] 4a60cc: Cherry-pick 282608 at main (802d54adc70e). https://bu...
Carlos Garcia Campos
noreply at github.com
Wed Aug 21 23:45:05 PDT 2024
Branch: refs/heads/webkitglib/2.46
Home: https://github.com/WebKit/WebKit
Commit: 4a60cc030308e22f5a5c3c961a5abe9475754f56
https://github.com/WebKit/WebKit/commit/4a60cc030308e22f5a5c3c961a5abe9475754f56
Author: Carlos Garcia Campos <cgarcia at igalia.com>
Date: 2024-08-22 (Thu, 22 Aug 2024)
Changed paths:
M Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp
M Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h
Log Message:
-----------
Cherry-pick 282608 at main (802d54adc70e). https://bugs.webkit.org/show_bug.cgi?id=278402
[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
More information about the webkit-changes
mailing list