From 040ebc21616c58eddcff27cb57177a553c4aeb26 Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Wed, 30 May 2018 22:05:15 +0200 Subject: [PATCH] Added workaround for mozbz#1464823 which makes GL layer compositor usable on Wayland. --- firefox.spec | 8 +++++++- mozilla-1464823.patch | 27 +++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 mozilla-1464823.patch diff --git a/firefox.spec b/firefox.spec index 019f257..7303673 100644 --- a/firefox.spec +++ b/firefox.spec @@ -102,7 +102,7 @@ Summary: Mozilla Firefox Web browser Name: firefox Version: 60.0.1 -Release: 4%{?pre_tag}%{?dist} +Release: 5%{?pre_tag}%{?dist} URL: https://www.mozilla.org/firefox/ License: MPLv1.1 or GPLv2+ or LGPLv2+ Source0: https://hg.mozilla.org/releases/mozilla-release/archive/firefox-%{version}%{?pre_version}.source.tar.xz @@ -180,6 +180,7 @@ Patch561: rb244012.patch Patch562: rb246410.patch Patch563: rb245262.patch Patch564: mozilla-1464808.patch +Patch565: mozilla-1464823.patch # Debian patches Patch500: mozilla-440908.patch @@ -376,6 +377,7 @@ This package contains results of tests executed during build. %patch562 -p1 -b .rb246410 %patch563 -p1 -b .rb245262 %patch564 -p1 -b .mozilla-1464808 +%patch565 -p1 -b .mozilla-1464823 %endif %{__rm} -f .mozconfig @@ -912,6 +914,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : #--------------------------------------------------------------------- %changelog +* Wed May 30 2018 Martin Stransky - 60.0.1-5 +- Added workaround for mozbz#1464823 which makes GL layer + compositor usable on Wayland. + * Tue May 29 2018 Martin Stransky - 60.0.1-4 - Added fix for mozbz#1464808 - Set default D&D action to move on Wayland. diff --git a/mozilla-1464823.patch b/mozilla-1464823.patch new file mode 100644 index 0000000..9870d98 --- /dev/null +++ b/mozilla-1464823.patch @@ -0,0 +1,27 @@ +Bug 1464823 - Don't sync rendering on Mesa as the Mesa Wayland implementation is buggy. + +diff --git a/gfx/gl/GLContextProviderEGL.cpp b/gfx/gl/GLContextProviderEGL.cpp +--- a/gfx/gl/GLContextProviderEGL.cpp ++++ b/gfx/gl/GLContextProviderEGL.cpp +@@ -273,20 +273,17 @@ GLContextEGLFactory::Create(EGLNativeWin + if (!gl) { + gfxCriticalNote << "Failed to create EGLContext!"; + mozilla::gl::DestroySurface(surface); + return nullptr; + } + + gl->MakeCurrent(); + gl->SetIsDoubleBuffered(doubleBuffered); +- if (aWebRender && sEGLLibrary.IsANGLE()) { +- MOZ_ASSERT(doubleBuffered); +- sEGLLibrary.fSwapInterval(EGL_DISPLAY(), 0); +- } ++ sEGLLibrary.fSwapInterval(EGL_DISPLAY(), 0); + return gl.forget(); + } + + GLContextEGL::GLContextEGL(CreateContextFlags flags, const SurfaceCaps& caps, + bool isOffscreen, EGLConfig config, EGLSurface surface, + EGLContext context) + : GLContext(flags, caps, nullptr, isOffscreen, false) + , mConfig(config)