summaryrefslogtreecommitdiff
path: root/mozilla-1702606.patch
diff options
context:
space:
mode:
Diffstat (limited to 'mozilla-1702606.patch')
-rw-r--r--mozilla-1702606.patch41
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;
+
bgstack15