[webkit-changes] [WebKit/WebKit] 802d54: [GTK] Crash in FenceMonitor::addFileDescriptor whe...
Carlos Garcia Campos
noreply at github.com
Wed Aug 21 23:31:40 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 802d54adc70e232328c849657cf52bd18d5fcead
https://github.com/WebKit/WebKit/commit/802d54adc70e232328c849657cf52bd18d5fcead
Author: Carlos Garcia Campos <cgarcia at igalia.com>
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
More information about the webkit-changes
mailing list