[Spice-devel] [PATCH v2 x11spice 2/2] Provide compatibility for Glamor in Xorg 1.17.
Jeremy White
jwhite at codeweavers.com
Wed Jul 31 16:27:20 UTC 2019
In Xorg 1.18, X changed so that GLAMOR_USE_EGL_SCREEN was the only
flag required and it implies the behavior previously requested
with the GLAMOR_USE_SCREEN and GLAMORE_USE_PICTURE_SCREEN flags.
Thus, if we are building against an older Xorg, we need to specify
those now deprecated flags.
Additionally, the compat-api header conflicts with the older
glamor header file, so it needs to be moved to be included
after glamor.h.
Signed-off-by: Jeremy White <jwhite at codeweavers.com>
---
v2: Provide more explanation
---
spice-video-dummy/src/dummy.h | 4 ++--
spice-video-dummy/src/spicedummy_driver.c | 15 ++++++++++++++-
2 files changed, 16 insertions(+), 3 deletions(-)
diff --git a/spice-video-dummy/src/dummy.h b/spice-video-dummy/src/dummy.h
index a2502902..af77c177 100644
--- a/spice-video-dummy/src/dummy.h
+++ b/spice-video-dummy/src/dummy.h
@@ -11,11 +11,11 @@
#endif
#include <string.h>
-#include "compat-api.h"
-
#define GLAMOR_FOR_XORG 1
#include "glamor.h"
+#include "compat-api.h"
+
/* Supported chipsets */
typedef enum {
DUMMY_CHIP
diff --git a/spice-video-dummy/src/spicedummy_driver.c b/spice-video-dummy/src/spicedummy_driver.c
index fc355f85..1dbe87b2 100644
--- a/spice-video-dummy/src/spicedummy_driver.c
+++ b/spice-video-dummy/src/spicedummy_driver.c
@@ -558,6 +558,19 @@ DUMMYScreenInit(SCREEN_INIT_ARGS_DECL)
int ret;
VisualPtr visual;
void *pixels;
+ int glamor_flags = GLAMOR_USE_EGL_SCREEN;
+
+ /* In Xorg 1.18, X changed so that GLAMOR_USE_EGL_SCREEN was the only
+ flag required and it implies the behavior previously requested
+ with the GLAMOR_USE_SCREEN and GLAMORE_USE_PICTURE_SCREEN flags.
+ Thus, if we are building against an older Xorg, we need to specify
+ those now deprecated flags. */
+#if defined(GLAMOR_USE_SCREEN)
+ glamor_flags |= GLAMOR_USE_SCREEN;
+#endif
+#if defined(GLAMOR_USE_PICTURE_SCREEN)
+ glamor_flags |= GLAMOR_USE_PICTURE_SCREEN;
+#endif
/*
* we need to get the ScrnInfoRec for this screen, so let's allocate
@@ -618,7 +631,7 @@ DUMMYScreenInit(SCREEN_INIT_ARGS_DECL)
/* must be after RGB ordering fixed */
fbPictureInit(pScreen, 0, 0);
- if (dPtr->glamor && !glamor_init(pScreen, GLAMOR_USE_EGL_SCREEN)) {
+ if (dPtr->glamor && !glamor_init(pScreen, glamor_flags)) {
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"Failed to initialise glamor at ScreenInit() time.\n");
return FALSE;
--
2.20.1
More information about the Spice-devel
mailing list