Mesa (master): dri_interface: add interface for EGL_EXT_image_flush_external
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Fri Oct 25 23:59:55 UTC 2019
Module: Mesa
Branch: master
Commit: 7520478461d8ab1cda415ff689d6b9058213ff43
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=7520478461d8ab1cda415ff689d6b9058213ff43
Author: Marek Olšák <marek.olsak at amd.com>
Date: Thu Oct 17 16:48:48 2019 -0400
dri_interface: add interface for EGL_EXT_image_flush_external
Reviewed-by: Kristian H. Kristensen <hoegsberg at google.com>
Reviewed-By: Tapani Pälli <tapani.palli at intel.com>
---
include/GL/internal/dri_interface.h | 51 ++++++++++++++++++++++++++++++++++++-
1 file changed, 50 insertions(+), 1 deletion(-)
diff --git a/include/GL/internal/dri_interface.h b/include/GL/internal/dri_interface.h
index f19ec5168a5..c1d54a1a9c6 100644
--- a/include/GL/internal/dri_interface.h
+++ b/include/GL/internal/dri_interface.h
@@ -1306,7 +1306,7 @@ struct __DRIdri2ExtensionRec {
* extensions.
*/
#define __DRI_IMAGE "DRI_IMAGE"
-#define __DRI_IMAGE_VERSION 17
+#define __DRI_IMAGE_VERSION 18
/**
* These formats correspond to the similarly named MESA_FORMAT_*
@@ -1353,6 +1353,8 @@ struct __DRIdri2ExtensionRec {
* could be read after a flush."
*/
#define __DRI_IMAGE_USE_BACKBUFFER 0x0010
+/* Whether to expect explicit flushes for external consumers. */
+#define __DRI_IMAGE_USE_FLUSH_EXTERNAL 0x0020
#define __DRI_IMAGE_TRANSFER_READ 0x1
@@ -1753,6 +1755,53 @@ struct __DRIimageExtensionRec {
int renderbuffer,
void *loaderPrivate,
unsigned *error);
+
+ /**
+ * Flush the image for external consumers. This is called when
+ * the current context is the producer.
+ *
+ * \since 18
+ */
+ void (*imageFlushExternal)(__DRIcontext *context, __DRIimage *image,
+ unsigned flags);
+
+ /**
+ * This call indicates that the image has been modified outside of
+ * the current context. This is called when the current context is
+ * the consumer of the image.
+ *
+ * \since 18
+ */
+ void (*imageInvalidateExternal)(__DRIcontext *context, __DRIimage *image,
+ unsigned flags);
+
+ /**
+ * Same as createImageFromName, but also specifies use.
+ *
+ * \since 18
+ */
+ __DRIimage *(*createImageFromName2)(__DRIscreen *screen,
+ int width, int height, int format,
+ int name, int pitch, unsigned use,
+ void *loaderPrivate);
+
+ /**
+ * Same as createImageFromDmaBufs, but also specifies modifier and use.
+ * Set modifier to DRM_FORMAT_MOD_INVALID if not using it.
+ *
+ * \since 18
+ */
+ __DRIimage *(*createImageFromDmaBufs3)(__DRIscreen *screen,
+ int width, int height, int fourcc,
+ uint64_t modifier, unsigned use,
+ 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);
};
More information about the mesa-commit
mailing list