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