Added workaround for mozbz#1464823 which makes GL layer compositor usable on Wayland.

This commit is contained in:
Martin Stransky 2018-05-30 22:05:15 +02:00
parent c354b7e147
commit 040ebc2161
2 changed files with 34 additions and 1 deletions

View File

@ -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 <stransky@redhat.com> - 60.0.1-5
- Added workaround for mozbz#1464823 which makes GL layer
compositor usable on Wayland.
* Tue May 29 2018 Martin Stransky <stransky@redhat.com> - 60.0.1-4
- Added fix for mozbz#1464808 - Set default D&D action to move
on Wayland.

27
mozilla-1464823.patch Normal file
View File

@ -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)