diff options
| -rw-r--r-- | meta-gnome/recipes-gnome/mutter/mutter/0001-cogl-Fix-GLES2-fallback.patch | 37 | ||||
| -rw-r--r-- | meta-gnome/recipes-gnome/mutter/mutter_3.34.1.bb | 96 |
2 files changed, 133 insertions, 0 deletions
diff --git a/meta-gnome/recipes-gnome/mutter/mutter/0001-cogl-Fix-GLES2-fallback.patch b/meta-gnome/recipes-gnome/mutter/mutter/0001-cogl-Fix-GLES2-fallback.patch new file mode 100644 index 0000000000..ec92000424 --- /dev/null +++ b/meta-gnome/recipes-gnome/mutter/mutter/0001-cogl-Fix-GLES2-fallback.patch | |||
| @@ -0,0 +1,37 @@ | |||
| 1 | From f4f7e31303d78b2a8a0881b61311b8d750301b8f Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Adam Jackson <ajax@redhat.com> | ||
| 3 | Date: Tue, 29 Oct 2019 11:53:27 -0400 | ||
| 4 | Subject: [PATCH] cogl: Fix GLES2 fallback | ||
| 5 | |||
| 6 | Say you're using intel gen3, you poor soul. Your big-GL maxes out at 1.5 | ||
| 7 | unless you use dirty tricks, but you do have GLES2. We try to fall back | ||
| 8 | to GLES in this case, but we only ever say eglBindAPI(EGL_OPENGL_API). | ||
| 9 | So when we go to do CreateContext, even though we think we've requested | ||
| 10 | GLES 2.0, the driver will compare that "2.0" against the maximum big-GL | ||
| 11 | version, and things will fail. | ||
| 12 | |||
| 13 | Fix this by binding EGL_OPENGL_ES_API before trying a GLES context. | ||
| 14 | |||
| 15 | https://gitlab.gnome.org/GNOME/mutter/issues/635 | ||
| 16 | |||
| 17 | Upstream-Status: Applied | ||
| 18 | --- | ||
| 19 | cogl/cogl/winsys/cogl-winsys-egl.c | 2 ++ | ||
| 20 | 1 file changed, 2 insertions(+) | ||
| 21 | |||
| 22 | diff --git a/cogl/cogl/winsys/cogl-winsys-egl.c b/cogl/cogl/winsys/cogl-winsys-egl.c | ||
| 23 | index 99dcb8bf3..f2b439a67 100644 | ||
| 24 | --- a/cogl/cogl/winsys/cogl-winsys-egl.c | ||
| 25 | +++ b/cogl/cogl/winsys/cogl-winsys-egl.c | ||
| 26 | @@ -329,6 +329,8 @@ try_create_context (CoglDisplay *display, | ||
| 27 | if (renderer->driver == COGL_DRIVER_GL || | ||
| 28 | renderer->driver == COGL_DRIVER_GL3) | ||
| 29 | eglBindAPI (EGL_OPENGL_API); | ||
| 30 | + else if (renderer->driver == COGL_DRIVER_GLES2) | ||
| 31 | + eglBindAPI (EGL_OPENGL_ES_API); | ||
| 32 | |||
| 33 | egl_attributes_from_framebuffer_config (display, | ||
| 34 | &display->onscreen_template->config, | ||
| 35 | -- | ||
| 36 | 2.21.0 | ||
| 37 | |||
diff --git a/meta-gnome/recipes-gnome/mutter/mutter_3.34.1.bb b/meta-gnome/recipes-gnome/mutter/mutter_3.34.1.bb new file mode 100644 index 0000000000..2d84bfc2f2 --- /dev/null +++ b/meta-gnome/recipes-gnome/mutter/mutter_3.34.1.bb | |||
| @@ -0,0 +1,96 @@ | |||
| 1 | SUMMARY = "Window and compositing manager based on Clutter" | ||
| 2 | LICENSE = "GPLv2" | ||
| 3 | LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" | ||
| 4 | |||
| 5 | DEPENDS = " \ | ||
| 6 | xserver-xorg-cvt-native \ | ||
| 7 | virtual/libx11 \ | ||
| 8 | gtk+3 \ | ||
| 9 | gdk-pixbuf \ | ||
| 10 | cairo \ | ||
| 11 | pango \ | ||
| 12 | gsettings-desktop-schemas \ | ||
| 13 | json-glib \ | ||
| 14 | gnome-desktop3 \ | ||
| 15 | gnome-settings-daemon \ | ||
| 16 | libxtst \ | ||
| 17 | libxkbfile \ | ||
| 18 | xinerama \ | ||
| 19 | " | ||
| 20 | |||
| 21 | GNOMEBASEBUILDCLASS = "meson" | ||
| 22 | |||
| 23 | inherit gnomebase gsettings gobject-introspection gettext upstream-version-is-even features_check | ||
| 24 | |||
| 25 | SRC_URI[archive.md5sum] = "4d7b67471fa4177e5ff0357e1f1736fb" | ||
| 26 | SRC_URI[archive.sha256sum] = "ba1826cf88bdb81e63943cac014a8e8bcf35ec178c53264401f9c72fdeab758e" | ||
| 27 | SRC_URI += "file://0001-cogl-Fix-GLES2-fallback.patch" | ||
| 28 | |||
| 29 | # x11 is still manadatory - see meson.build | ||
| 30 | REQUIRED_DISTRO_FEATURES = "x11" | ||
| 31 | |||
| 32 | # systemd can be replaced by libelogind (not available atow - make systemd | ||
| 33 | # mandatory distro feature) | ||
| 34 | LOGIND ?= "systemd" | ||
| 35 | REQUIRED_DISTRO_FEATURES += "systemd" | ||
| 36 | |||
| 37 | # profiler requires sysprof 3.34 which is not willing to build atow | ||
| 38 | PACKAGECONFIG ??= " \ | ||
| 39 | native-backend \ | ||
| 40 | ${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'opengl glx', '', d)} \ | ||
| 41 | sm \ | ||
| 42 | startup-notification \ | ||
| 43 | ${@bb.utils.contains('DISTRO_FEATURES', 'opengl wayland', 'wayland', '', d)} \ | ||
| 44 | " | ||
| 45 | |||
| 46 | EXTRA_OEMESON += " \ | ||
| 47 | -Dxwayland_path=${bindir}/Xwayland \ | ||
| 48 | " | ||
| 49 | |||
| 50 | # combi-config - see meson_options.txt for more details | ||
| 51 | PACKAGECONFIG[native-backend] = "-Dnative_backend=true -Dudev=true, -Dnative_backend=false -Dudev=false, libdrm virtual/libgbm libinput ${LOGIND} virtual/egl virtual/libgles2 udev" | ||
| 52 | PACKAGECONFIG[opengl] = "-Dopengl=true, -Dopengl=true, virtual/libgl" | ||
| 53 | PACKAGECONFIG[glx] = "-Dglx=true, -Dglx=false" | ||
| 54 | PACKAGECONFIG[libwacom] = "-Dlibwacom=true, -Dlibwacom=false, libwacom" | ||
| 55 | PACKAGECONFIG[remote-desktop] = "-Dremote_desktop=true, -Dremote_desktop=false, pipewire" | ||
| 56 | PACKAGECONFIG[sm] = "-Dsm=true, -Dsm=false, libsm" | ||
| 57 | PACKAGECONFIG[profiler] = "-Dprofiler=true,-Dprofiler=false,sysprof" | ||
| 58 | PACKAGECONFIG[startup-notification] = "-Dstartup_notification=true, -Dstartup_notification=false, startup-notification, startup-notification" | ||
| 59 | PACKAGECONFIG[wayland] = "-Dwayland=true,-Dwayland=false,wayland wayland-native, xserver-xorg-xwayland" | ||
| 60 | PACKAGECONFIG[wayland-eglstream] = "-Dwayland_eglstream=true,-Dwayland_eglstream=false" | ||
| 61 | |||
| 62 | # yes they changed from mutter-4 -> mutter-5 recently so be perpared | ||
| 63 | MUTTER_API_NAME = "mutter-5" | ||
| 64 | |||
| 65 | do_install_append() { | ||
| 66 | # Add gir links in standard paths. That makes dependents life much easier | ||
| 67 | # to find them | ||
| 68 | install -d ${D}${datadir}/gir-1.0 | ||
| 69 | for gir_full in `find ${D}${libdir}/${MUTTER_API_NAME} -name '*.gir'`; do | ||
| 70 | gir=`basename "$gir_full"` | ||
| 71 | ln -sr "${D}${libdir}/${MUTTER_API_NAME}/$gir" "${D}${datadir}/gir-1.0/$gir" | ||
| 72 | done | ||
| 73 | } | ||
| 74 | |||
| 75 | PACKAGES =+ "${PN}-tests" | ||
| 76 | |||
| 77 | FILES_${PN} += " \ | ||
| 78 | ${datadir}/gnome-control-center \ | ||
| 79 | ${libdir}/${MUTTER_API_NAME}/lib*${SOLIBS} \ | ||
| 80 | ${libdir}/${MUTTER_API_NAME}/*.typelib \ | ||
| 81 | ${libdir}/${MUTTER_API_NAME}/plugins \ | ||
| 82 | " | ||
| 83 | |||
| 84 | FILES_${PN}-tests += " \ | ||
| 85 | ${datadir}/installed-tests \ | ||
| 86 | ${datadir}/${MUTTER_API_NAME}/tests \ | ||
| 87 | ${libexecdir}/installed-tests/${MUTTER_API_NAME} \ | ||
| 88 | " | ||
| 89 | |||
| 90 | FILES_${PN}-dev += " \ | ||
| 91 | ${libdir}/${MUTTER_API_NAME}/*.gir \ | ||
| 92 | ${libdir}/${MUTTER_API_NAME}/lib*.so \ | ||
| 93 | " | ||
| 94 | |||
| 95 | RDEPENDS_${PN} += "zenity" | ||
| 96 | |||
