[Spice-devel] [PATCH v2 x11spice 2/2] Provide compatibility for Glamor in Xorg 1.17.
Frediano Ziglio
fziglio at redhat.com
Thu Aug 1 09:27:44 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>
Acked
> ---
> 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;
More information about the Spice-devel
mailing list