[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