[RFC xserver 05/16] DRI3/Glamor: Implement PixmapFromBuffers request
Michel Dänzer
michel at daenzer.net
Fri Jun 9 02:36:24 UTC 2017
On 09/06/17 03:43 AM, Daniel Stone wrote:
> From: Louis-Francis Ratté-Boulianne <lfrb at collabora.com>
>
> Signed-off-by: Louis-Francis Ratté-Boulianne <lfrb at collabora.com>
> Signed-off-by: Daniel Stone <daniels at collabora.com>
[...]
> diff --git a/dri3/dri3.h b/dri3/dri3.h
> index 40b8474c0..4d6699f5e 100644
> --- a/dri3/dri3.h
> +++ b/dri3/dri3.h
> @@ -39,13 +39,15 @@ typedef int (*dri3_open_client_proc)(ClientPtr client,
> RRProviderPtr provider,
> int *fd);
>
> -typedef PixmapPtr (*dri3_pixmap_from_fd_proc) (ScreenPtr screen,
> - int fd,
> - CARD16 width,
> - CARD16 height,
> - CARD16 stride,
> - CARD8 depth,
> - CARD8 bpp);
> +typedef PixmapPtr (*dri3_pixmap_from_fds_proc) (ScreenPtr screen,
> + CARD8 num_fds,
> + int *fds,
> + CARD16 width,
> + CARD16 height,
> + CARD32 *strides,
> + CARD32 *offsets,
> + CARD32 format,
> + uint64_t modifiers);
>
> typedef int (*dri3_fd_from_pixmap_proc) (ScreenPtr screen,
> PixmapPtr pixmap,
> @@ -66,7 +68,7 @@ typedef struct dri3_screen_info {
> uint32_t version;
>
> dri3_open_proc open;
> - dri3_pixmap_from_fd_proc pixmap_from_fd;
> + dri3_pixmap_from_fds_proc pixmap_from_fds;
> dri3_fd_from_pixmap_proc fd_from_pixmap;
> dri3_get_formats_proc get_formats;
> dri3_get_modifiers_proc get_modifiers;
Completely dropping the pixmap_from_fd hook might be a bit harsh. It
would mean drivers without pixmap_from_fds support (e.g.
xf86-video-amdgpu/ati with EXA) can't support DRI3 at all, right?
> +static PixmapPtr
> +glamor_pixmap_from_fds(ScreenPtr screen,
> + CARD8 num_fds, int *fds,
> + CARD16 width, CARD16 height,
> + CARD32 *strides, CARD32 *offsets,
> + CARD32 format, uint64_t modifier)
> {
[...]
> @@ -612,7 +748,7 @@ glamor_dri3_open_client(ClientPtr client,
> static dri3_screen_info_rec glamor_dri3_info = {
> .version = 1,
> .open_client = glamor_dri3_open_client,
> - .pixmap_from_fd = glamor_pixmap_from_fd,
> + .pixmap_from_fds = glamor_pixmap_from_fds,
> .fd_from_pixmap = glamor_fd_from_pixmap,
> .get_formats = glamor_get_formats,
> .get_modifiers = glamor_get_modifiers,
glamor_pixmap_from_fds also needs to be exported to drivers.
Same corresponding comments on patch 6.
--
Earthling Michel Dänzer | http://www.amd.com
Libre software enthusiast | Mesa and X developer
More information about the xorg-devel
mailing list