diff options
Diffstat (limited to 'mozilla-1702606.patch')
-rw-r--r-- | mozilla-1702606.patch | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/mozilla-1702606.patch b/mozilla-1702606.patch new file mode 100644 index 0000000..8497f7e --- /dev/null +++ b/mozilla-1702606.patch @@ -0,0 +1,41 @@ +changeset: 576316:5310862f0f2a +tag: tip +parent: 576314:6159d3fc46c6 +user: stransky <stransky@redhat.com> +date: Thu Apr 01 20:02:47 2021 +0200 +files: widget/gtk/WindowSurfaceWayland.cpp widget/gtk/nsWaylandDisplay.cpp +description: +Bug 1702606 [Wayland] Don't call mWaylandDisplay::WaitForSyncEnd() from Compositor/Render thread, r?rmader + +Differential Revision: https://phabricator.services.mozilla.com/D110590 + + +diff --git a/widget/gtk/WindowSurfaceWayland.cpp b/widget/gtk/WindowSurfaceWayland.cpp +--- a/widget/gtk/WindowSurfaceWayland.cpp ++++ b/widget/gtk/WindowSurfaceWayland.cpp +@@ -737,10 +737,6 @@ already_AddRefed<gfx::DrawTarget> Window + return nullptr; + } + +- // Wait until all pending events are processed. There may be queued +- // wl_buffer release event which releases our wl_buffer for further rendering. +- mWaylandDisplay->WaitForSyncEnd(); +- + // Lock the surface *after* WaitForSyncEnd() call as is can fire + // FlushPendingCommits(). + MutexAutoLock lock(mSurfaceLock); +diff --git a/widget/gtk/nsWaylandDisplay.cpp b/widget/gtk/nsWaylandDisplay.cpp +--- a/widget/gtk/nsWaylandDisplay.cpp ++++ b/widget/gtk/nsWaylandDisplay.cpp +@@ -239,6 +239,10 @@ void nsWaylandDisplay::QueueSyncBegin() + } + + void nsWaylandDisplay::WaitForSyncEnd() { ++ MOZ_RELEASE_ASSERT( ++ NS_IsMainThread(), ++ "nsWaylandDisplay::WaitForSyncEnd() can be called in main thread only!"); ++ + // We're done here + if (!mSyncCallback) { + return; + |