diff options
Diffstat (limited to 'glamor/glamor.h')
-rw-r--r-- | glamor/glamor.h | 65 |
1 files changed, 37 insertions, 28 deletions
diff --git a/glamor/glamor.h b/glamor/glamor.h index 5b15a46e5..8f8c31b45 100644 --- a/glamor/glamor.h +++ b/glamor/glamor.h @@ -138,15 +138,17 @@ extern _X_EXPORT void glamor_pixmap_exchange_fbos(PixmapPtr front, /* The DDX is not supposed to call these three functions */ extern _X_EXPORT void glamor_enable_dri3(ScreenPtr screen); -extern _X_EXPORT int glamor_egl_dri3_fd_name_from_tex(ScreenPtr, PixmapPtr, - unsigned int, Bool, - CARD16 *, CARD32 *); +extern _X_EXPORT int glamor_egl_fds_from_pixmap(ScreenPtr, PixmapPtr, int *, + uint32_t *, uint32_t *, + uint64_t *); +extern _X_EXPORT int glamor_egl_fd_name_from_pixmap(ScreenPtr, PixmapPtr, + CARD16 *, CARD32 *); extern _X_EXPORT struct gbm_device *glamor_egl_get_gbm_device(ScreenPtr screen); /* @glamor_supports_pixmap_import_export: Returns whether - * glamor_fd_from_pixmap(), glamor_name_from_pixmap(), and - * glamor_pixmap_from_fd() are supported. + * glamor_fds_from_pixmap(), glamor_name_from_pixmap(), and + * glamor_pixmap_from_fds() are supported. * * @screen: Current screen pointer. * @@ -159,20 +161,22 @@ extern _X_EXPORT struct gbm_device *glamor_egl_get_gbm_device(ScreenPtr screen); * */ extern _X_EXPORT Bool glamor_supports_pixmap_import_export(ScreenPtr screen); -/* @glamor_fd_from_pixmap: Get a dma-buf fd from a pixmap. +/* @glamor_fds_from_pixmap: Get a dma-buf fd from a pixmap. * * @screen: Current screen pointer. * @pixmap: The pixmap from which we want the fd. - * @stride, @size: Pointers to fill the stride and size of the - * buffer associated to the fd. + * @fds, @strides, @offsets: Pointers to fill info of each plane. + * @modifier: Pointer to fill the modifier of the buffer. * - * the pixmap and the buffer associated by the fd will share the same - * content. - * Returns the fd on success, -1 on error. + * the pixmap and the buffer associated by the fds will share the same + * content. The caller is responsible to close the returned file descriptors. + * Returns the number of planes, -1 on error. * */ -extern _X_EXPORT int glamor_fd_from_pixmap(ScreenPtr screen, - PixmapPtr pixmap, - CARD16 *stride, CARD32 *size); +extern _X_EXPORT int glamor_fds_from_pixmap(ScreenPtr screen, + PixmapPtr pixmap, + int *fds, + uint32_t *strides, uint32_t *offsets, + uint64_t *modifier); /* @glamor_shareable_fd_from_pixmap: Get a dma-buf fd suitable for sharing * with other GPUs from a pixmap. @@ -224,25 +228,30 @@ extern _X_EXPORT int glamor_name_from_pixmap(PixmapPtr pixmap, extern _X_EXPORT struct gbm_bo *glamor_gbm_bo_from_pixmap(ScreenPtr screen, PixmapPtr pixmap); -/* @glamor_pixmap_from_fd: Creates a pixmap to wrap a dma-buf fd. +/* @glamor_pixmap_from_fds: Creates a pixmap to wrap a dma-buf fds. * * @screen: Current screen pointer. - * @fd: The dma-buf fd to import. - * @width: The width of the buffer. - * @height: The height of the buffer. - * @stride: The stride of the buffer. - * @depth: The depth of the buffer. - * @bpp: The number of bpp of the buffer. + * @num_fds: Number of fds to import + * @fds: The dma-buf fds to import. + * @width: The width of the buffers. + * @height: The height of the buffers. + * @stride: The stride of the buffers. + * @depth: The depth of the buffers. + * @bpp: The bpp of the buffers. + * @modifier: The modifier of the buffers. * * Returns a valid pixmap if the import succeeded, else NULL. * */ -extern _X_EXPORT PixmapPtr glamor_pixmap_from_fd(ScreenPtr screen, - int fd, - CARD16 width, - CARD16 height, - CARD16 stride, - CARD8 depth, - CARD8 bpp); +extern _X_EXPORT PixmapPtr glamor_pixmap_from_fds(ScreenPtr screen, + CARD8 num_fds, + int *fds, + CARD16 width, + CARD16 height, + CARD32 *strides, + CARD32 *offsets, + CARD8 depth, + CARD8 bpp, + uint64_t modifier); /* @glamor_back_pixmap_from_fd: Backs an existing pixmap with a dma-buf fd. * |