[Mesa-dev] [PATCH v3] dri: add queryDmaBufFormats and queryDmaBufModifiers to DRIimage

Varad Gautam varadgautam at gmail.com
Wed Apr 26 12:19:50 UTC 2017


From: Varad Gautam <varad.gautam at collabora.com>

these allow querying the driver for supported dmabuf formats and
modifiers.

v2: move to __DRIimageExtension version 16.
v3: return GLBoolean for error reporting, document params better.

Signed-off-by: Varad Gautam <varad.gautam at collabora.com>
---
 include/GL/internal/dri_interface.h | 42 ++++++++++++++++++++++++++++++++++++-
 1 file changed, 41 insertions(+), 1 deletion(-)

diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h
index e330723..7e61455 100644
--- a/include/GL/internal/dri_interface.h
+++ b/include/GL/internal/dri_interface.h
@@ -1136,7 +1136,7 @@ struct __DRIdri2ExtensionRec {
  * extensions.
  */
 #define __DRI_IMAGE "DRI_IMAGE"
-#define __DRI_IMAGE_VERSION 15
+#define __DRI_IMAGE_VERSION 16
 
 /**
  * These formats correspond to the similarly named MESA_FORMAT_*
@@ -1512,6 +1512,46 @@ struct __DRIimageExtensionRec {
                                           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 16
+    */
+   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 16
+    */
+   GLboolean (*queryDmaBufModifiers)(__DRIscreen *screen, int fourcc, int max,
+                                uint64_t *modifiers, int *count);
 };
 
 
-- 
2.10.0



More information about the mesa-dev mailing list