aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKai Kang <kai.kang@windriver.com>2019-07-25 04:11:46 -0400
committerKhem Raj <raj.khem@gmail.com>2019-07-26 15:24:45 -0700
commitd1321215f1231f6f88860ad5e5128b39f55a1304 (patch)
treebabc8ef2f3979fe2a095a9d211a42ddd0fac8c9b
parent7aeac572dee32c28ee0f5125582920362d12da3e (diff)
downloadmeta-openembedded-contrib-d1321215f1231f6f88860ad5e5128b39f55a1304.tar.gz
xfwm4: fix assertion error
It fails to start xfwm4 on intel_x86_64 boards: | xfwm4: ../mesa-19.1.1/src/mesa/drivers/dri/i965/intel_mipmap_tree.c:1293: | intel_miptree_match_image: Assertion `image->TexObject->Target == mt->target' failed. | Aborted Revert the upstream commit which introduce the issue. Signed-off-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r--meta-xfce/recipes-xfce/xfwm4/files/0001-Revert-compositor-Revert-to-GLX-as-default-vblank-me.patch92
-rw-r--r--meta-xfce/recipes-xfce/xfwm4/xfwm4_4.13.3.bb1
2 files changed, 93 insertions, 0 deletions
diff --git a/meta-xfce/recipes-xfce/xfwm4/files/0001-Revert-compositor-Revert-to-GLX-as-default-vblank-me.patch b/meta-xfce/recipes-xfce/xfwm4/files/0001-Revert-compositor-Revert-to-GLX-as-default-vblank-me.patch
new file mode 100644
index 0000000000..04fd623e8f
--- /dev/null
+++ b/meta-xfce/recipes-xfce/xfwm4/files/0001-Revert-compositor-Revert-to-GLX-as-default-vblank-me.patch
@@ -0,0 +1,92 @@
+From acdceb0b28d86199b8c2233880fa8a04cb24d4d4 Mon Sep 17 00:00:00 2001
+From: Kai Kang <kai.kang@windriver.com>
+Date: Wed, 24 Jul 2019 09:48:04 +0800
+Subject: [PATCH] Revert "compositor: Revert to GLX as default vblank method
+ (again)"
+
+This reverts commit e07574d6e7a2dbaa08c3ba4765c6306073d9493e.
+
+It sets the default vblank method (auto) to GLX from 4.13.2. But it
+fails to start xfwm4 on intel-x86-64 boards with error:
+
+| xfwm4: ../mesa-19.1.1/src/mesa/drivers/dri/i965/intel_mipmap_tree.c:1293:
+| intel_miptree_match_image: Assertion `image->TexObject->Target == mt->target' failed.
+| Aborted
+
+There is also a RHEL defect:
+https://bugzilla.redhat.com/show_bug.cgi?id=1678334
+
+Revert the commit to fix the issue.
+
+Upstream-Status: Inappropriate [workaround]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ src/compositor.c | 41 +++++++++++++++++++----------------------
+ 1 file changed, 19 insertions(+), 22 deletions(-)
+
+diff --git a/src/compositor.c b/src/compositor.c
+index 25615282..daced607 100644
+--- a/src/compositor.c
++++ b/src/compositor.c
+@@ -4483,13 +4483,28 @@ compositorManageScreen (ScreenInfo *screen_info)
+ XClearArea (display_info->dpy, screen_info->output, 0, 0, 0, 0, TRUE);
+ TRACE ("manual compositing enabled");
+
++#ifdef HAVE_PRESENT_EXTENSION
++ screen_info->use_present = display_info->have_present &&
++ (screen_info->vblank_mode == VBLANK_AUTO ||
++ screen_info->vblank_mode == VBLANK_XPRESENT);
++ if (screen_info->use_present)
++ {
++ screen_info->present_pending = FALSE;
++ XPresentSelectInput (display_info->dpy,
++ screen_info->output,
++ PresentCompleteNotifyMask);
++ }
++#else /* HAVE_PRESENT_EXTENSION */
++ screen_info->use_present = FALSE;
++#endif /* HAVE_PRESENT_EXTENSION */
++
+ #ifdef HAVE_EPOXY
+- screen_info->use_glx = (screen_info->vblank_mode == VBLANK_AUTO ||
+- screen_info->vblank_mode == VBLANK_GLX);
++ screen_info->use_glx = !screen_info->use_present &&
+ #ifdef HAVE_XSYNC
+- screen_info->use_glx &= display_info->have_xsync;
++ display_info->have_xsync &&
+ #endif /* HAVE_XSYNC */
+-
++ (screen_info->vblank_mode == VBLANK_AUTO ||
++ screen_info->vblank_mode == VBLANK_GLX);
+ if (screen_info->use_glx)
+ {
+ screen_info->glx_context = None;
+@@ -4503,24 +4518,6 @@ compositorManageScreen (ScreenInfo *screen_info)
+ screen_info->use_glx = FALSE;
+ #endif /* HAVE_EPOXY */
+
+-#ifdef HAVE_PRESENT_EXTENSION
+- screen_info->use_present = display_info->have_present &&
+-#ifdef HAVE_EPOXY
+- !screen_info->use_glx &&
+-#endif /* HAVE_EPOXY */
+- (screen_info->vblank_mode == VBLANK_AUTO ||
+- screen_info->vblank_mode == VBLANK_XPRESENT);
+- if (screen_info->use_present)
+- {
+- screen_info->present_pending = FALSE;
+- XPresentSelectInput (display_info->dpy,
+- screen_info->output,
+- PresentCompleteNotifyMask);
+- }
+-#else /* HAVE_PRESENT_EXTENSION */
+- screen_info->use_present = FALSE;
+-#endif /* HAVE_PRESENT_EXTENSION */
+-
+ if (screen_info->use_present)
+ {
+ g_info ("Compositor using XPresent for vsync");
+--
+2.20.1
+
diff --git a/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.13.3.bb b/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.13.3.bb
index f4ebb45e05..591580b84f 100644
--- a/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.13.3.bb
+++ b/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.13.3.bb
@@ -8,6 +8,7 @@ inherit xfce update-alternatives distro_features_check
REQUIRED_DISTRO_FEATURES = "x11"
+SRC_URI += "file://0001-Revert-compositor-Revert-to-GLX-as-default-vblank-me.patch"
SRC_URI[md5sum] = "e53081e5928d401604d158429716e699"
SRC_URI[sha256sum] = "12ad274f6662c8afee35fd9b9310e73bd462c423578d448b2d7353e3c8eda6c1"