Blame SOURCES/0010-modesetting-Fix-build-with-glamor-disabled.patch

55d6a0
From d8271417a5986240f1f81cbe269e0cd07a9104d1 Mon Sep 17 00:00:00 2001
55d6a0
From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <mdaenzer@redhat.com>
55d6a0
Date: Mon, 10 Feb 2020 18:41:44 +0100
55d6a0
Subject: [PATCH xserver 10/11] modesetting: Fix build with glamor disabled
55d6a0
55d6a0
Fixes: cb1b1e184723 "modesetting: Indirect the glamor API through
55d6a0
                     LoaderSymbol"
55d6a0
Reviewed-by: Adam Jackson <ajax@redhat.com>
55d6a0
(cherry picked from commit 0cb9fa7949d6c5398de220fbdbe1e262e943fcbb)
55d6a0
---
55d6a0
 hw/xfree86/drivers/modesetting/driver.c | 21 +++++++++++++++------
55d6a0
 hw/xfree86/drivers/modesetting/driver.h |  3 ++-
55d6a0
 2 files changed, 17 insertions(+), 7 deletions(-)
55d6a0
55d6a0
diff --git a/hw/xfree86/drivers/modesetting/driver.c b/hw/xfree86/drivers/modesetting/driver.c
55d6a0
index 08cf6a1b4..ce8bac9f5 100644
55d6a0
--- a/hw/xfree86/drivers/modesetting/driver.c
55d6a0
+++ b/hw/xfree86/drivers/modesetting/driver.c
55d6a0
@@ -743,9 +743,17 @@ FreeRec(ScrnInfoPtr pScrn)
55d6a0
 
55d6a0
 }
55d6a0
 
55d6a0
-static void
55d6a0
-bind_glamor_api(void *mod, modesettingPtr ms)
55d6a0
+#ifdef GLAMOR_HAS_GBM
55d6a0
+
55d6a0
+static Bool
55d6a0
+load_glamor(ScrnInfoPtr pScrn)
55d6a0
 {
55d6a0
+    void *mod = xf86LoadSubModule(pScrn, GLAMOR_EGL_MODULE_NAME);
55d6a0
+    modesettingPtr ms = modesettingPTR(pScrn);
55d6a0
+
55d6a0
+    if (!mod)
55d6a0
+        return FALSE;
55d6a0
+
55d6a0
     ms->glamor.back_pixmap_from_fd = LoaderSymbolFromModule(mod, "glamor_back_pixmap_from_fd");
55d6a0
     ms->glamor.block_handler = LoaderSymbolFromModule(mod, "glamor_block_handler");
55d6a0
     ms->glamor.egl_create_textured_pixmap = LoaderSymbolFromModule(mod, "glamor_egl_create_textured_pixmap");
55d6a0
@@ -762,8 +770,12 @@ bind_glamor_api(void *mod, modesettingPtr ms)
55d6a0
     ms->glamor.supports_pixmap_import_export = LoaderSymbolFromModule(mod, "glamor_supports_pixmap_import_export");
55d6a0
     ms->glamor.xv_init = LoaderSymbolFromModule(mod, "glamor_xv_init");
55d6a0
     ms->glamor.egl_get_driver_name = LoaderSymbolFromModule(mod, "glamor_egl_get_driver_name");
55d6a0
+
55d6a0
+    return TRUE;
55d6a0
 }
55d6a0
 
55d6a0
+#endif
55d6a0
+
55d6a0
 static void
55d6a0
 try_enable_glamor(ScrnInfoPtr pScrn)
55d6a0
 {
55d6a0
@@ -772,7 +784,6 @@ try_enable_glamor(ScrnInfoPtr pScrn)
55d6a0
                                                        OPTION_ACCEL_METHOD);
55d6a0
     Bool do_glamor = (!accel_method_str ||
55d6a0
                       strcmp(accel_method_str, "glamor") == 0);
55d6a0
-    void *mod;
55d6a0
 
55d6a0
     ms->drmmode.glamor = FALSE;
55d6a0
 
55d6a0
@@ -787,9 +798,7 @@ try_enable_glamor(ScrnInfoPtr pScrn)
55d6a0
         return;
55d6a0
     }
55d6a0
 
55d6a0
-    mod = xf86LoadSubModule(pScrn, GLAMOR_EGL_MODULE_NAME);
55d6a0
-    if (mod) {
55d6a0
-        bind_glamor_api(mod, ms);
55d6a0
+    if (load_glamor(pScrn)) {
55d6a0
         if (ms->glamor.egl_init(pScrn, ms->fd)) {
55d6a0
             xf86DrvMsg(pScrn->scrnIndex, X_INFO, "glamor initialized\n");
55d6a0
             ms->drmmode.glamor = TRUE;
55d6a0
diff --git a/hw/xfree86/drivers/modesetting/driver.h b/hw/xfree86/drivers/modesetting/driver.h
55d6a0
index 328a97de1..261f1aac4 100644
55d6a0
--- a/hw/xfree86/drivers/modesetting/driver.h
55d6a0
+++ b/hw/xfree86/drivers/modesetting/driver.h
55d6a0
@@ -132,6 +132,7 @@ typedef struct _modesettingRec {
55d6a0
         void (*UpdatePacked)(ScreenPtr, shadowBufPtr);
55d6a0
     } shadow;
55d6a0
 
55d6a0
+#ifdef GLAMOR_HAS_GBM
55d6a0
     /* glamor API */
55d6a0
     struct {
55d6a0
         Bool (*back_pixmap_from_fd)(PixmapPtr, int, CARD16, CARD16, CARD16,
55d6a0
@@ -156,7 +157,7 @@ typedef struct _modesettingRec {
55d6a0
         XF86VideoAdaptorPtr (*xv_init)(ScreenPtr, int);
55d6a0
         const char *(*egl_get_driver_name)(ScreenPtr);
55d6a0
     } glamor;
55d6a0
-
55d6a0
+#endif
55d6a0
 } modesettingRec, *modesettingPtr;
55d6a0
 
55d6a0
 #define glamor_finish(screen) ms->glamor.finish(screen)
55d6a0
-- 
55d6a0
2.33.1
55d6a0