[Linux-graphics-maintainer] [PATCH] glamor: Work around GEM usage v2

Deepak Singh Rawat drawat at vmware.com
Wed Jun 20 17:58:20 UTC 2018


The patch looks good to me just one question, I see that flink name
is returned as fd, so handle is what vmwgfx expecting in that case ?

Reviewed-by: Deepak Rawat <drawat at vmware.com>

> 
> KMS drivers are not required to support GEM. In particular, vmwgfx
> doesn't support flink and handles and names are identical.
> Getting a bo name should really be part of a lower level API, if needed,
> but in the mean time work around this by setting the name identical to
> the handle if GEM isn't supported.
> 
> This fixes modesetting driver dri2 on vmwgfx.
> 
> Signed-off-by: Thomas Hellstrom <thellstrom at vmware.com>
> ---
> v2: Strip changes to an unrelated file.
> ---
>  glamor/glamor_egl.c | 14 ++++++++++++--
>  1 file changed, 12 insertions(+), 2 deletions(-)
> 
> diff --git a/glamor/glamor_egl.c b/glamor/glamor_egl.c
> index 4a4ca4bd8..7ec749742 100644
> --- a/glamor/glamor_egl.c
> +++ b/glamor/glamor_egl.c
> @@ -99,8 +99,18 @@ glamor_get_flink_name(int fd, int handle, int *name)
>      struct drm_gem_flink flink;
> 
>      flink.handle = handle;
> -    if (ioctl(fd, DRM_IOCTL_GEM_FLINK, &flink) < 0)
> -        return FALSE;
> +    if (ioctl(fd, DRM_IOCTL_GEM_FLINK, &flink) < 0) {
> +
> +	/*
> +	 * Assume non-GEM kernels have names identical to the handle
> +	 */
> +	if (errno == ENODEV) {
> +	    *name = handle;
> +	    return TRUE;
> +	} else {
> +	    return FALSE;
> +	}
> +    }
>      *name = flink.name;
>      return TRUE;
>  }
> --
> 2.14.3
> 
> _______________________________________________
> Sent to linux-graphics-maintainer at vmware.com


More information about the xorg-devel mailing list