mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 18:18:06 +02:00
dri: introduce dmabuf format modifier related handles
these allow dmabuf import with modifiers, and supported format and modifier queries, which are used to implement EGL_EXT_image_dma_buf_import_modifiers. v2: - squash dmabuf queries into DRIimage version 15 (Jason Ekstrand). - add external_only param to queryDmaBufModifiers (Emil, Daniel Stone) - pass a single modifier form createImageFromDmaBufs2 since all planes have the same modifier (Jason Ekstrand) Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Signed-off-by: Varad Gautam <varad.gautam@collabora.com> Reviewed-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Eric Engestrom <eric.engestrom@imgtec.com>
This commit is contained in:
parent
fb2a1c2327
commit
c5929634a0
1 changed files with 62 additions and 1 deletions
|
|
@ -1137,7 +1137,7 @@ struct __DRIdri2ExtensionRec {
|
|||
* extensions.
|
||||
*/
|
||||
#define __DRI_IMAGE "DRI_IMAGE"
|
||||
#define __DRI_IMAGE_VERSION 14
|
||||
#define __DRI_IMAGE_VERSION 15
|
||||
|
||||
/**
|
||||
* These formats correspond to the similarly named MESA_FORMAT_*
|
||||
|
|
@ -1494,6 +1494,67 @@ struct __DRIimageExtensionRec {
|
|||
const uint64_t *modifiers,
|
||||
const unsigned int modifier_count,
|
||||
void *loaderPrivate);
|
||||
|
||||
/*
|
||||
* Like createImageFromDmaBufs, but takes also format modifiers.
|
||||
*
|
||||
* For EGL_EXT_image_dma_buf_import_modifiers.
|
||||
*
|
||||
* \since 15
|
||||
*/
|
||||
__DRIimage *(*createImageFromDmaBufs2)(__DRIscreen *screen,
|
||||
int width, int height, int fourcc,
|
||||
uint64_t modifier,
|
||||
int *fds, int num_fds,
|
||||
int *strides, int *offsets,
|
||||
enum __DRIYUVColorSpace color_space,
|
||||
enum __DRISampleRange sample_range,
|
||||
enum __DRIChromaSiting horiz_siting,
|
||||
enum __DRIChromaSiting vert_siting,
|
||||
unsigned *error,
|
||||
void *loaderPrivate);
|
||||
|
||||
/*
|
||||
* dmabuf format query to support EGL_EXT_image_dma_buf_import_modifiers.
|
||||
*
|
||||
* \param max Maximum number of formats that can be accomodated into
|
||||
* \param formats. If zero, no formats are returned -
|
||||
* instead, the driver returns the total number of
|
||||
* supported dmabuf formats in \param count.
|
||||
* \param formats Buffer to fill formats into.
|
||||
* \param count Count of formats returned, or, total number of
|
||||
* supported formats in case \param max is zero.
|
||||
*
|
||||
* Returns true on success.
|
||||
*
|
||||
* \since 15
|
||||
*/
|
||||
GLboolean (*queryDmaBufFormats)(__DRIscreen *screen, int max,
|
||||
int *formats, int *count);
|
||||
|
||||
/*
|
||||
* dmabuf format modifier query for a given format to support
|
||||
* EGL_EXT_image_dma_buf_import_modifiers.
|
||||
*
|
||||
* \param fourcc The format to query modifiers for. If this format
|
||||
* is not supported by the driver, return false.
|
||||
* \param max Maximum number of modifiers that can be accomodated in
|
||||
* \param modifiers. If zero, no modifiers are returned -
|
||||
* instead, the driver returns the total number of
|
||||
* modifiers for \param format in \param count.
|
||||
* \param modifiers Buffer to fill modifiers into.
|
||||
* \param count Count of the modifiers returned, or, total number of
|
||||
* supported modifiers for \param fourcc in case
|
||||
* \param max is zero.
|
||||
*
|
||||
* Returns true upon success.
|
||||
*
|
||||
* \since 15
|
||||
*/
|
||||
GLboolean (*queryDmaBufModifiers)(__DRIscreen *screen, int fourcc,
|
||||
int max, uint64_t *modifiers,
|
||||
unsigned int *external_only,
|
||||
int *count);
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue